Menu

InvalidObjectKeyException

Help
2010-04-30
2013-05-08
  • Larry Edelstein

    Larry Edelstein - 2010-04-30

    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

     
  • Michael MacDonald

    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

     
  • 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.

     

Log in to post a comment.