-
Bug
-
Resolution: Fixed
-
Medium
-
3.1.12
-
None
-
Eclipse versions:
"Eclipse Platform 3.7.0.I20110613-1736 org.eclipse.platform.ide null" and "Eclipse Platform 4.3.0.I20130605-2000 org.eclipse.platform.ide null"
Stack trace:
java.lang.reflect.InvocationTargetException at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:110) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) Caused by: Java Model Exception: Java Model Status [clover.org.apache.commons.lang.enum [in /usr/local/external/vendor/atlassian/clover-ant/3.1.11/lib/clover.jar] does not exist] at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:505) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:246) at org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:504) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:240) at org.eclipse.jdt.internal.core.SourceRefElement.generateInfos(SourceRefElement.java:107) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:518) at org.eclipse.jdt.internal.core.BinaryType.getElementInfo(BinaryType.java:286) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:241) at org.eclipse.jdt.internal.core.BinaryType.isInterface(BinaryType.java:723) at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.findAllRippleMethods(RippleMethodFinder2.java:242) at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.getAllRippleMethods(RippleMethodFinder2.java:168) at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.getRelatedMethods(RippleMethodFinder2.java:161) at
To reproduce this error:
1. install Eclipse Clover plugin, create new Java project, enable Clover on the project
2. add reference to clover.jar /lib/clover.jar (project properties > java build path > libraries > add external jars > /path/to/clover-ant/3.1.11/lib/clover.jar)
3. add class:
public class KeyValuePair { private String _key; private String _value; public KeyValuePair(String key, String value) { _key = key; _value = value; } public String getKey() { return _key; } public void setKey(String key) { _key = key; } public String getName() { return _value; } public void setValue(String value) { _value = value; } }
4. Try to rename getName()
[CLOV-1370] Code refactoring in Eclipse fails when clover.jar is added in classpath
Workflow | Original: New Clover Workflow [ 897613 ] | New: New Clover Workflow - Restricted [ 1474767 ] |
Workflow | Original: Clover Workflow [ 895317 ] | New: New Clover Workflow [ 897613 ] |
Workflow | Original: reviewflow [ 559655 ] | New: Clover Workflow [ 895317 ] |
Status | Original: Resolved [ 5 ] | New: Closed [ 6 ] |
Resolution | New: Fixed [ 1 ] | |
Status | Original: To be reviewed [ 10026 ] | New: Resolved [ 5 ] |
Status | Original: Implemented [ 10025 ] | New: To be reviewed [ 10026 ] |
Status | Original: Open [ 1 ] | New: Implemented [ 10025 ] |
Priority | Original: Critical [ 2 ] | New: Major [ 3 ] |
It seems that during code refactoring Eclipse searches for possible references to the method being renamed.
It fails to scan clover.jar or clover-runtime.jar. It fails to scan classes in a package named:
clover.org.apache.commons.lang.enum
Please note that 'enum' is a reserved Java keyword since JDK5. The commons-lang library has two packages having the same set of classes:
When I have deleted the 'clover.org.apache.commons.lang.enum' package from clover.jar and clover-runtime.jar (Clover does not use these classes), the problem in Eclipse has disappeared.