Bug 207657

Summary: [search] Exception when refactoring member type to top-level.
Product: [Eclipse Project] JDT Reporter: Felix L J Mayer <felix.mayer>
Component: CoreAssignee: Frederic Fusier <frederic_fusier>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: david_audel, jerome_lanneluc, markus.kell.r, martinae, tsteininger
Version: 3.3   
Target Milestone: 3.5 M2   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Source to reproduce the bug
none
Proposed patch none

Description Felix L J Mayer CLA 2007-10-27 02:01:29 EDT
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:
Comment 1 Jerome Lanneluc CLA 2007-10-27 05:11:24 EDT
Moving to JDT/UI
Comment 2 Martin Aeschlimann CLA 2007-10-29 05:28:28 EDT
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.
Comment 3 Frederic Fusier CLA 2007-10-29 05:41:56 EDT
A small test case on which you can reproduce the problem would help us a lot to understand what happen there...
Comment 4 Felix L J Mayer CLA 2007-10-30 13:27:00 EDT
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.
Comment 5 Frederic Fusier CLA 2008-08-20 09:47:15 EDT
*** Bug 243272 has been marked as a duplicate of this bug. ***
Comment 6 Frederic Fusier CLA 2008-09-04 12:37:44 EDT
Created attachment 111685 [details]
Proposed patch
Comment 7 Frederic Fusier CLA 2008-09-04 12:38:07 EDT
Released for 3.5M2
Comment 8 David Audel CLA 2008-09-15 08:51:52 EDT
Verified for 3.5M2 using I20080914-2000
Comment 9 Frederic Fusier CLA 2008-09-30 05:53:17 EDT
*** Bug 243272 has been marked as a duplicate of this bug. ***