[jbosstools-issues] [JBoss JIRA] Commented: (JBIDE-5036) JDT Internal Error connected with JBossAS while java method renaming

Max Rydahl Andersen (JIRA) jira-events at lists.jboss.org
Tue Feb 9 22:00:12 EST 2010


    [ https://jira.jboss.org/jira/browse/JBIDE-5036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12511462#action_12511462 ] 

Max Rydahl Andersen commented on JBIDE-5036:
--------------------------------------------

Okey that took a while to figure out, especially since I couldn't get source lookup to figure it out for me.

The culprit is that jaxws-tools.jar has a manifest.mf which lists jaxb-xjc.jar as its dependency and because of that ClasspathEntry.resolvedChainedLibraries() add's it automatically on the classpath since the jar is it self considered a kind of virtual classpath container.

Filtering out jaxws-tools.jar solves this problem, but then we are bumping into the Webservice generator code that might need it. hence why I haven't committed anything yet.

But basically its

 if( path.lastSegment().toLowerCase().endsWith("jaxws-tools.jar")) {
				return false;
		}
added to the code above.

I also extended the unittests but the current set of tests doesnt seem to test anything about the actual content of classpath providers so its also not "safe" to add for now (at least I need some more sleep first)

btw. in case you wonder how I figured it out then I opened ClasspathEntry, right clicked its constructor, chose Toggle Method Breakpoint, then edit the generated breakpoint properties to have an enabled condition set to "this.getPath().toString().contains("xjc")" and set Suspend on Method exit so the property would actually be filled out. That gave me a hit which showed that jaxws-tools.jar is the reason it gets there in the first place.

> JDT Internal Error connected with JBossAS while java method renaming 
> ---------------------------------------------------------------------
>
>                 Key: JBIDE-5036
>                 URL: https://jira.jboss.org/jira/browse/JBIDE-5036
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: JBossAS, UpStream
>    Affects Versions: 3.1.0.M3
>            Reporter: Daniel Azarov
>            Assignee: Max Rydahl Andersen
>            Priority: Blocker
>             Fix For: 3.1.0.CR2
>
>
> Testcase:
> 1. Create jsf KickStart project with JBossAS
> 2. Open \JavaSource\demo\User.java in java editor
> 3. Select getName() method name
> 4. Mouse right click
> 5. Select Refactor->Rename
> 6. Type new name, "getName2" for instance
> 7. Press Enter
> FAIL:
> java.lang.reflect.InvocationTargetException
> at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:91)
> at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
> Caused by: Java Model Exception: Java Model Status [1.0.com.sun.tools.xjc.reader.xmlschema.bindinfo [in C:\JBoss\jboss-4.2.0.GA\client\jaxb-xjc.jar] does not exist]
> at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:502)
> 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:515)
> at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:252)
> at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:238)
> at org.eclipse.jdt.internal.core.BinaryMethod.getFlags(BinaryMethod.java:113)
> at org.eclipse.jdt.internal.corext.util.JavaModelUtil.isVisibleInHierarchy(JavaModelUtil.java:240)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.uniteWithSupertypes(RippleMethodFinder2.java:407)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.uniteWithSupertypes(RippleMethodFinder2.java:403)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.createUnionFind(RippleMethodFinder2.java:384)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.findAllRippleMethods(RippleMethodFinder2.java:196)
> 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 org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor.initializeMethodsToRename(RenameMethodProcessor.java:236)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor.doCheckFinalConditions(RenameMethodProcessor.java:360)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor.doCheckFinalConditions(RenameVirtualMethodProcessor.java:143)
> at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:46)
> at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:224)
> at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:85)
> at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:121)
> at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
> at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
> ... 1 more
> Root exception:
> Java Model Exception: Java Model Status [1.0.com.sun.tools.xjc.reader.xmlschema.bindinfo [in C:\JBoss\jboss-4.2.0.GA\client\jaxb-xjc.jar] does not exist]
> at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:502)
> 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:515)
> at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:252)
> at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:238)
> at org.eclipse.jdt.internal.core.BinaryMethod.getFlags(BinaryMethod.java:113)
> at org.eclipse.jdt.internal.corext.util.JavaModelUtil.isVisibleInHierarchy(JavaModelUtil.java:240)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.uniteWithSupertypes(RippleMethodFinder2.java:407)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.uniteWithSupertypes(RippleMethodFinder2.java:403)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.createUnionFind(RippleMethodFinder2.java:384)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.findAllRippleMethods(RippleMethodFinder2.java:196)
> 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 org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor.initializeMethodsToRename(RenameMethodProcessor.java:236)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor.doCheckFinalConditions(RenameMethodProcessor.java:360)
> at org.eclipse.jdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor.doCheckFinalConditions(RenameVirtualMethodProcessor.java:143)
> at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:46)
> at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:224)
> at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:85)
> at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:121)
> at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
> at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
> at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list