This has cropped up for me as well. Unfortunately, it's a bug deep in my data access library that leaves the db corrupted and I don't have a good handle on it yet. The work-around is to select "Rebuild" on the drop-down menu in the query window; it will reconstruct the db from scratch and the problem should go away (for a while).
(Of course, if you have a code-base where this happens every time the "Rebuild" won't work for you. If there is a set of class files or jars on which this error will show up repeatably, I'd be happy to see it if it is something you can send me).
-Michael MacDonald
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I did track this down (I think)- there is a fix in t0.7.10, which I just posted
This version will force you to rebuild your database the first time it is accessed; after that the corruption (which can be hidden for some time) will be gone for good.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
BBQ is throwing this exception at some point when it starts to process my code base.
Here's the stack trace and some variables:
Thread (Suspended (exception InvalidObjectKeyException))
EntryPageList.getObject(DAKey, StreamPair, ClassList) line: 292
DirectoryAllocator.retrieve(ObjectKey) line: 380
IndexObjectDB(ObjectDB).getObjectByKey(ObjectKey) line: 113
IndexObjectDB.findObject(String, Comparable) line: 116
IndexAnalyzeDB.findWithIndex(String, Comparable) line: 164
DBType.getWithTypeKey(String, IndexAnalyzeDB) line: 69
AnnotationProcessor<A>.addAnnotations(AnnotationInfo, boolean) line: 51
AnnotationProcessor<A>.processAttributeList(AttributeList) line: 82
DBClass.addClassToDB(ClassWriter, IndexAnalyzeDB) line: 509
DBClass.addFileToDB(File, IndexAnalyzeDB) line: 615
BBQBuilder.analyzeFile(IResource) line: 117
BBQBuilder$BBQResourceVisitor.visit(IResource) line: 67
Resource$2.visit(IResourceProxy) line: 108
Resource$1.visitElement(ElementTree, IPathRequestor, Object) line: 60
ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 82
ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 86
ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 86
ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 86
ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 86
ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 86
ElementTreeIterator.iterate(IElementContentVisitor) line: 127
Project(Resource).accept(IResourceProxyVisitor, int) line: 70
Project(Resource).accept(IResourceVisitor, int, int) line: 106
Project(Resource).accept(IResourceVisitor) line: 90
BBQBuilder.fullBuild(IProgressMonitor) line: 129
BBQBuilder.build(int, Map, IProgressMonitor) line: 91
BuildManager$2.run() line: 627
SafeRunner.run(ISafeRunnable) line: 42
BuildManager.basicBuild(int, IncrementalProjectBuilder, Map, MultiStatus, IProgressMonitor) line: 170
BuildManager.basicBuild(IProject, int, ICommand, MultiStatus, IProgressMonitor) line: 201
BuildManager$1.run() line: 253
SafeRunner.run(ISafeRunnable) line: 42
BuildManager.basicBuild(IProject, int, MultiStatus, IProgressMonitor) line: 256
BuildManager.basicBuildLoop(IProject, IProject, int, MultiStatus, IProgressMonitor) line: 309
BuildManager.build(int, IProgressMonitor) line: 341
AutoBuildJob.doBuild(IProgressMonitor) line: 140
AutoBuildJob.run(IProgressMonitor) line: 238
Worker.run() line: 55
this EntryPageList (id=13786)
deleteLock Semaphore (id=13908)
freePage null
freePageOffset 0
lruSize 100
modified true
pageFlushLock Semaphore (id=13909)
pageLRU (id=13910)
pages ArrayList<E> (id=13911)
key DAKey (id=13790)
index 2192836
reuseCount 1
streams StreamPair (id=13793)
allocator DiskAllocator (id=13800)
chunkSize 10248
customizer SchemaCustomizer (id=13802)
first 0
objectInput SchemaInputStream (id=13805)
objectOutput SchemaOutputStream (id=13813)
randomInput RandomInputStream (id=13820)
randomOutput RandomOutputStream (id=13822)
second 0
classList ClassList (id=13795)
classChangeLock Semaphore (id=13826)
classEntries ArrayList<E> (id=13828)
classMap HashMap<K,V> (id=13832)
factory IndexAnalyzeDB$CFactory (id=13836)
freeList ArrayList<E> (id=13839)
indexMap HashMap<K,V> (id=13841)
listModified false
page EntryPage (id=13796)
localOffset 836
This has cropped up for me as well. Unfortunately, it's a bug deep in my data access library that leaves the db corrupted and I don't have a good handle on it yet. The work-around is to select "Rebuild" on the drop-down menu in the query window; it will reconstruct the db from scratch and the problem should go away (for a while).
(Of course, if you have a code-base where this happens every time the "Rebuild" won't work for you. If there is a set of class files or jars on which this error will show up repeatably, I'd be happy to see it if it is something you can send me).
-Michael MacDonald
I did track this down (I think)- there is a fix in t0.7.10, which I just posted
This version will force you to rebuild your database the first time it is accessed; after that the corruption (which can be hidden for some time) will be gone for good.