Community
Participate
Working Groups
Build ID: I20070625-1500 Steps To Reproduce: In certain cases the refactoring of a static inner class fails with an exception like the one below. It fails every time I try to do it, but the source which causes it is somewhat complex, so I am giving you only the exception itself for now. Please let me know if more info is needed. !ENTRY org.eclipse.ltk.ui.refactoring 4 10000 2007-10-27 01:49:18.093 !MESSAGE Internal Error !STACK 0 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:113) Caused by: Java Model Exception: Java Model Status [visitRelationshipEnd(End) {key=Lcom/objectaid/uml/cls/model/ClassDiagramVisitor;.visitRelationshipEnd(Lcom/objectaid/uml/cls/model/Relationship$End;)Z} [in ClassDiagramVisitor [in ClassDiagramVisitor.java [in com.objectaid.uml.cls.model [in src [in com.objectaid.uml]]]]] does not exist] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:485) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:516) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:249) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:235) at org.eclipse.jdt.internal.core.Member.getFlags(Member.java:164) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustOutgoingVisibilityChain(MemberVisibilityAdjustor.java:680) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustOutgoingVisibility(MemberVisibilityAdjustor.java:673) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustOutgoingVisibility(MemberVisibilityAdjustor.java:715) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustVisibility(MemberVisibilityAdjustor.java:768) at org.eclipse.jdt.internal.corext.refactoring.structure.MoveInnerToTopRefactoring.createChangeManager(MoveInnerToTopRefactoring.java:806) at org.eclipse.jdt.internal.corext.refactoring.structure.MoveInnerToTopRefactoring.checkFinalConditions(MoveInnerToTopRefactoring.java:729) at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:83) at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:118) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797) at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87) ... 1 more Root exception: Java Model Exception: Java Model Status [visitRelationshipEnd(End) {key=Lcom/objectaid/uml/cls/model/ClassDiagramVisitor;.visitRelationshipEnd(Lcom/objectaid/uml/cls/model/Relationship$End;)Z} [in ClassDiagramVisitor [in ClassDiagramVisitor.java [in com.objectaid.uml.cls.model [in src [in com.objectaid.uml]]]]] does not exist] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:485) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:516) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:249) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:235) at org.eclipse.jdt.internal.core.Member.getFlags(Member.java:164) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustOutgoingVisibilityChain(MemberVisibilityAdjustor.java:680) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustOutgoingVisibility(MemberVisibilityAdjustor.java:673) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustOutgoingVisibility(MemberVisibilityAdjustor.java:715) at org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdjustor.adjustVisibility(MemberVisibilityAdjustor.java:768) at org.eclipse.jdt.internal.corext.refactoring.structure.MoveInnerToTopRefactoring.createChangeManager(MoveInnerToTopRefactoring.java:806) at org.eclipse.jdt.internal.corext.refactoring.structure.MoveInnerToTopRefactoring.checkFinalConditions(MoveInnerToTopRefactoring.java:729) at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:83) at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:118) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797) at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:113) More information:
Moving to JDT/UI
Looks like a dup of 135700 which is a search problem. Felix, it would be great if you find a way to construct a code example where the exception is reproducible.
A small test case on which you can reproduce the problem would help us a lot to understand what happen there...
Created attachment 81605 [details] Source to reproduce the bug I managed to create a set of classes that reproduces the problem. Simply open Relationship.java and try to convert End to a top-level type. The crucial thing seems to be the genericity of ConnectionEnd, or maybe the accept() methods.
*** Bug 243272 has been marked as a duplicate of this bug. ***
Created attachment 111685 [details] Proposed patch
Released for 3.5M2
Verified for 3.5M2 using I20080914-2000