Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 322674

Summary: Java indexes are invalid: CategoryTable cannot be case to java.lang.Integer
Product: [Eclipse Project] JDT Reporter: Kelly Campbell <kellyc>
Component: CoreAssignee: Satyam Kandula <satyam.kandula>
Status: CLOSED INVALID QA Contact:
Severity: normal    
Priority: P3 CC: srikanth_sankaran
Version: 3.7   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Kelly Campbell CLA 2010-08-13 12:56:00 EDT
Build Identifier: I20100608-0911 (jdt.core: 3.6.1.v_A63_R36x built from R3_6_maintenance branch)

Caused by: java.lang.ClassCastException: org.eclipse.jdt.internal.core.index.CategoryTable cannot be cast to java.lang.Integer
at org.eclipse.jdt.internal.core.index.DiskIndex.readDocumentNumbers(DiskIndex.java:766)
at org.eclipse.jdt.internal.core.index.EntryResult.getDocumentNames(EntryResult.java:58)
at org.eclipse.jdt.core.search.SearchPattern.findIndexMatches(SearchPattern.java:2308)
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.findMatches(BasicSearchEngine.java:214)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:582)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:142)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:129)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameFieldProcessor.getReferences(RenameFieldProcessor.java:584)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameFieldProcessor.doCheckFinalConditions(RenameFieldProcessor.java:438)
at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:46)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:224)
at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:160)
at org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:80)
at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:106)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Root exception:
java.lang.ClassCastException: org.eclipse.jdt.internal.core.index.CategoryTable cannot be cast to java.lang.Integer
at org.eclipse.jdt.internal.core.index.DiskIndex.readDocumentNumbers(DiskIndex.java:766)
at org.eclipse.jdt.internal.core.index.EntryResult.getDocumentNames(EntryResult.java:58)
at org.eclipse.jdt.core.search.SearchPattern.findIndexMatches(SearchPattern.java:2308)
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.findMatches(BasicSearchEngine.java:214)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:582)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:142)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:129)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameFieldProcessor.getReferences(RenameFieldProcessor.java:584)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameFieldProcessor.doCheckFinalConditions(RenameFieldProcessor.java:438)
at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:46)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:224)
at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:160)
at org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:80)
at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:106)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

Reproducible: Always

Steps to Reproduce:
1. Perform a java search or refactor like rename a var.
2. Internal error occurs with the above stack trace

I tried shutting down eclipse, removing all .index files from the .metadata/.plugins/org.eclipse.jdt.core directory and restarting eclipse. It rebuilt all the indexes but the exceptions still occur.
Comment 1 Srikanth Sankaran CLA 2010-08-14 06:57:12 EDT
Satyam, please take a look and see if this needs to
go in for 3.6.1 and set target suitably -- Thanks.
Comment 2 Satyam Kandula CLA 2010-08-16 00:25:36 EDT
Kelly, Is there a way I can reproduce the problem?
Comment 3 Satyam Kandula CLA 2010-08-16 10:41:25 EDT
Kelly, Can you make sure of the build-id? CategoryTable doesn't exist any more. It used to exist before 7th May.
Comment 4 Satyam Kandula CLA 2010-08-16 10:46:00 EDT
Probably a different jdt.core plugin is getting used. Can you please verify?
Comment 5 Kelly Campbell CLA 2010-08-16 11:24:07 EDT
(In reply to comment #4)
> Probably a different jdt.core plugin is getting used. Can you please verify?

Sorry for the erroneous bug report. We built the jdt.core from a git cloned copy of the cvs repository, but somehow the commit which removed this file somehow got skipped.
Comment 6 Kelly Campbell CLA 2010-08-16 11:41:09 EDT
FYI, the official Eclipse git repositories listed at http://dev.eclipse.org/git/index.html have the same issue.
Comment 7 Satyam Kandula CLA 2010-08-17 05:50:45 EDT
(In reply to comment #6)
> FYI, the official Eclipse git repositories listed at
> http://dev.eclipse.org/git/index.html have the same issue.
The official git repository has CategoryTable.java but it is no longer being used. Hence, if you just delete this file, that should be good enough. 
I have raised the bug 322885 for this issue.