Bug 207657 - [search] Exception when refactoring member type to top-level.
Summary: [search] Exception when refactoring member type to top-level.
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.5 M2   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 243272 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-10-27 02:01 EDT by Felix L J Mayer CLA
Modified: 2008-09-30 05:53 EDT (History)
5 users (show)

See Also:


Attachments
Source to reproduce the bug (1.36 KB, application/zip)
2007-10-30 13:27 EDT, Felix L J Mayer CLA
no flags Details
Proposed patch (8.77 KB, patch)
2008-09-04 12:37 EDT, Frederic Fusier CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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. ***