| Summary: | [1.7][search]CCE while searching for a type reference in multiple catch parameters | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] JDT | Reporter: | Satyam Kandula <satyam.kandula> | ||||
| Component: | Core | Assignee: | Satyam Kandula <satyam.kandula> | ||||
| Status: | VERIFIED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | amj87.iitr, markus.kell.r | ||||
| Version: | 3.7 | ||||||
| Target Milestone: | 3.7.1 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 188299 [details]
Patch
Took care of the newly introduced DisjunctiveTypeReference.
Released in the BETA_JAVA7 branch Verified using Eclipse Java 7 Support(Beta) feature patch v20110623-0900. |
##### public class Test { public void foo() { try {} catch (Exception | RuntimeException e) {} } } ##### With the above testcase, search for the type RuntimeException in catch clause gives the following CCE. ################# java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.ast.DisjunctiveTypeReference cannot be cast to org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference at org.eclipse.jdt.internal.core.search.matching.TypeReferenceLocator.match(TypeReferenceLocator.java:92) at org.eclipse.jdt.internal.core.search.matching.MatchLocatorParser.consumeStatementCatch(MatchLocatorParser.java:535) at org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule(Parser.java:5937) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:9615) at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:9951) at org.eclipse.jdt.internal.core.search.matching.MatchLocatorParser.parseBodies(MatchLocatorParser.java:830) at org.eclipse.jdt.internal.core.search.matching.MatchLocatorParser.parseBodies(MatchLocatorParser.java:804) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.getMethodBodies(MatchLocator.java:858) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.parseAndBuildBindings(MatchLocator.java:1598) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1019) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1124) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1241) at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:231) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515) at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:584) at org.eclipse.jdt.internal.ui.search.JavaSearchQuery.run(JavaSearchQuery.java:144) at org.eclipse.search2.internal.ui.InternalSearchUI$InternalSearchJob.run(InternalSearchUI.java:91) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)