Bug 241592

Summary: [search] Open Type failed due to internal error on "Item filtering"
Product: [Eclipse Project] JDT Reporter: Yuming Liu <yuming_liu>
Component: CoreAssignee: Frederic Fusier <frederic_fusier>
Status: VERIFIED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: Alexander.Veit, david_audel, fhxster, jerome_lanneluc, Olivier_Thomann, srikanth_sankaran
Version: 3.4   
Target Milestone: 3.5 M4   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Yuming Liu CLA 2008-07-21 17:43:02 EDT
Build ID: I20080617-2000

Steps To Reproduce:
1.launch "Open Type"
2.Type in any valid class names you may have in your Java project
3.A error message pops up stating:
'Item filtering' has encountered a problem.
An internal error occured during: "Item filtering".



More information:
"Open Type" used to work flawlessly until update to the latest "Usage Data Collector" is applied this morning(07/21/2008).

Now It fails EVERY TIME with the same error shown above.

Here is a exception trace produced by Eclipse:
!ENTRY org.eclipse.core.jobs 4 2 2008-07-21 17:05:56.780
!MESSAGE An internal error occurred during: "Items filtering".
!STACK 0
java.lang.IllegalArgumentException: Class file name must end with .class
	at org.eclipse.jdt.internal.core.PackageFragment.getClassFile(PackageFragment.java:182)
	at org.eclipse.jdt.internal.core.search.TypeNameMatchRequestorWrapper.createTypeFromJar(TypeNameMatchRequestorWrapper.java:146)
	at org.eclipse.jdt.internal.core.search.TypeNameMatchRequestorWrapper.acceptType(TypeNameMatchRequestorWrapper.java:108)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine$2.acceptIndexMatch(BasicSearchEngine.java:779)
	at org.eclipse.jdt.internal.core.search.matching.InternalSearchPattern.acceptMatch(InternalSearchPattern.java:57)
	at org.eclipse.jdt.internal.core.search.matching.InternalSearchPattern.findIndexMatches(InternalSearchPattern.java:88)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.findIndexMatches(MatchLocator.java:269)
	at org.eclipse.jdt.internal.core.search.PatternSearchJob.search(PatternSearchJob.java:97)
	at org.eclipse.jdt.internal.core.search.PatternSearchJob.execute(PatternSearchJob.java:63)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob(JobManager.java:276)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.searchAllTypeNames(BasicSearchEngine.java:790)
	at org.eclipse.jdt.core.search.SearchEngine.searchAllTypeNames(SearchEngine.java:815)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog.fillContentProvider(FilteredTypesSelectionDialog.java:553)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$FilterJob.filterContent(FilteredItemsSelectionDialog.java:2175)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$FilterJob.internalRun(FilteredItemsSelectionDialog.java:2117)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$FilterJob.doRun(FilteredItemsSelectionDialog.java:2089)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$FilterJob.run(FilteredItemsSelectionDialog.java:2076)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 1 Frank Henningsen CLA 2008-10-21 10:41:39 EDT
i just tried to reset my eclipse workspace by applying the -clean parameter on startup. This solved the problem, but I expect that the problem will return sometime later.
Comment 2 Frederic Fusier CLA 2008-11-06 09:52:00 EST
*** Bug 254415 has been marked as a duplicate of this bug. ***
Comment 3 Greg Giacovelli CLA 2008-12-18 16:48:49 EST
I have used the -clean option and it still doesn't correct itself. Is there an idea as to what may be causing this?

Comment 4 Frederic Fusier CLA 2009-03-02 06:55:38 EST
Do you have any project with name ending with '.jar' or file(s) on the classpath with '.jar' extension but in fact not a Jar File?
Comment 5 Yuming Liu CLA 2009-03-05 15:17:15 EST
(In reply to comment #4)
> Do you have any project with name ending with '.jar' or file(s) on the
> classpath with '.jar' extension but in fact not a Jar File?
> 
Not in my case.

I just shifted to 3.4.2, the problem no longer manifest.  However, 3.4.2 has  more nuances of its own!
Comment 6 Frederic Fusier CLA 2009-03-06 03:25:18 EST
My assumption is that it was a problem with the indexes. When installing 3.4.2, all indexes have been recreated and the problem vanished, but as you said it may happen again. This has been fixed for 3.5M4 but not backported to 3.4.2 as too risky for a maintenance stream...

So, I close this as a duplicate of bug 251504. If you encounter this problem again, then close your session, delete all the files in .metadata/.plugins/org.eclipse.jdt.core directory and restart. If this action does fix your problem, my assumption was correct, if not, then please reopen this bug, thanks

*** This bug has been marked as a duplicate of bug 251504 ***
Comment 7 David Audel CLA 2009-03-10 07:21:08 EDT
Verified for 3.5M6. This bug is probably a duplicate of bug 251504

Comment 8 Alexander Veit CLA 2010-06-04 10:00:56 EDT
This bug exists in Build id: 20100218-1602.

Please provide a sensible error message that helps users to solve the problem.

"Class file name must end with .class" is fail.


----------------------------------------------------
An internal error occurred during: "Items filtering".

java.lang.IllegalArgumentException: Class file name must end with .class
	at org.eclipse.jdt.internal.core.PackageFragment.getClassFile(PackageFragment.java:182)
	at org.eclipse.jdt.internal.core.search.TypeNameMatchRequestorWrapper.createTypeFromPath(TypeNameMatchRequestorWrapper.java:191)
	at org.eclipse.jdt.internal.core.search.TypeNameMatchRequestorWrapper.acceptType(TypeNameMatchRequestorWrapper.java:107)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine$3.acceptIndexMatch(BasicSearchEngine.java:1111)
	at org.eclipse.jdt.core.search.SearchPattern.acceptMatch(SearchPattern.java:299)
	at org.eclipse.jdt.core.search.SearchPattern.findIndexMatches(SearchPattern.java:2124)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.findIndexMatches(MatchLocator.java:264)
	at org.eclipse.jdt.internal.core.search.PatternSearchJob.search(PatternSearchJob.java:97)
	at org.eclipse.jdt.internal.core.search.PatternSearchJob.execute(PatternSearchJob.java:63)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob(JobManager.java:276)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.searchAllTypeNames(BasicSearchEngine.java:1122)
	at org.eclipse.jdt.core.search.SearchEngine.searchAllTypeNames(SearchEngine.java:815)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog.fillContentProvider(FilteredTypesSelectionDialog.java:556)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$FilterJob.filterContent(FilteredItemsSelectionDialog.java:2182)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$FilterJob.internalRun(FilteredItemsSelectionDialog.java:2124)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$FilterJob.doRun(FilteredItemsSelectionDialog.java:2096)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$FilterJob.run(FilteredItemsSelectionDialog.java:2083)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)