Bug 238282 - [search] OrPattern of two field reference patterns throws CCE for qualified name reference
Summary: [search] OrPattern of two field reference patterns throws CCE for qualified n...
Status: VERIFIED DUPLICATE of bug 265065
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.4   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.5 M6   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-24 12:36 EDT by Markus Keller CLA
Modified: 2009-03-09 12:01 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2008-06-24 12:36:14 EDT
HEAD

Search for an OrPattern of two field reference patterns throws a CCE when a qualified name reference is found.

To reproduce, e.g. have the code below, select class Inner, choose Refactor > Extract Class..., and click Preview.

package xy;
public class Outer {
	static class Inner {
		public String fOne;
		public String fTwo;
	}
	
	void m(Inner inner) {
		inner.fOne= null;
	}
}

java.lang.ClassCastException: org.eclipse.jdt.internal.core.search.matching.OrPattern cannot be cast to org.eclipse.jdt.internal.core.search.matching.VariablePattern
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.newFieldReferenceMatch(MatchLocator.java:1409)
	at org.eclipse.jdt.internal.core.search.matching.FieldLocator.matchReportReference(FieldLocator.java:223)
	at org.eclipse.jdt.internal.core.search.matching.OrLocator.matchReportReference(OrLocator.java:265)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2147)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2593)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2322)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:1614)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1040)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1081)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1213)
	at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:223)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:506)
	at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:551)
	at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:142)
	at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:117)
	at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractClassRefactoring.updateReferences(ExtractClassRefactoring.java:531)
	at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractClassRefactoring.checkFinalConditions(ExtractClassRefactoring.java:364)
	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)
Comment 1 Frederic Fusier CLA 2009-03-04 09:59:35 EST


*** This bug has been marked as a duplicate of bug 265065 ***
Comment 2 David Audel CLA 2009-03-09 12:01:44 EDT
Verified for 3.5M6 using I20090309-0100.