[ 
https://issues.apache.org/jira/browse/JENA-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13080970#comment-13080970
 ] 

Andy Seaborne commented on JENA-86:
-----------------------------------

Only version numbers and timestamps (which tdb.tdbquery -version should print) 
at the moment.

Or "svn update ; mvn clean install"

I'd like to be doing nightly builds and we could turn this on in Apache's 
Jenkins, but that isn't too reliable and we would be eating disk space if left 
to build every commit (as it is currently).  It can be "archive last" but 
whether "last" means "last successful" or "last attempt", I don't know.  Not 
sure where they go either!

It's two slightly different CI scenarios: build-to-test and 
build-to-create-snapshot.

At the moment, (2011/08/08) we've lost the maven repo-dev in the unrelated AWS 
problems.




> NPE in BlockMgrCache in direct mode
> -----------------------------------
>
>                 Key: JENA-86
>                 URL: https://issues.apache.org/jira/browse/JENA-86
>             Project: Jena
>          Issue Type: Bug
>          Components: TDB
>            Reporter: Simon Helsen
>            Assignee: Andy Seaborne
>            Priority: Critical
>
> There seems to be a problem with the implementation of getWrite in 
> BlockMgrCache. Whenever there is a write and read cache miss, the code does 
> not actually delegate to the wrapped BlockMgr. In direct mode, this would 
> have to be the file system. The resulting exception is 
> java.lang.NullPointerException
>       at 
> com.hp.hpl.jena.tdb.base.page.PageBlockMgr.getWrite(PageBlockMgr.java:50)
>       at 
> com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.getMgrWrite(BPTreeNode.java:162)
>       at 
> com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.get(BPTreeNode.java:145)
>       at 
> com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.delete(BPTreeNode.java:227)
>       at 
> com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.deleteAndReturnOld(BPlusTree.java:324)
>       at 
> com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.delete(BPlusTree.java:318)
>       at 
> com.hp.hpl.jena.tdb.index.TupleIndexRecord.performDelete(TupleIndexRecord.java:55)
>       at 
> com.hp.hpl.jena.tdb.index.TupleIndexBase.delete(TupleIndexBase.java:61)
>       at com.hp.hpl.jena.tdb.index.TupleTable.delete(TupleTable.java:108)
>       at 
> com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB.removeWorker(BulkUpdateHandlerTDB.java:136)
>       at 
> com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB.removeAll(BulkUpdateHandlerTDB.java:90)
>       at com.hp.hpl.jena.rdf.model.impl.ModelCom.removeAll(ModelCom.java:315)
> I think the fix is to change the following code in the getWrite method of 
> BlockMgrCache (starting at line 158):
>      // Did not find.
>         cacheMisses++ ;
>         log("Miss/w: %d", id) ;
>         if ( writeCache != null )
>             writeCache.put(id, blk) ;
>         return blk ;
> into 
>      // Did not find.
>         cacheMisses++ ;
>         log("Miss/w: %d", id) ;
>         blk = super.getWrite(id);
>         if ( writeCache != null )
>             writeCache.put(id, blk) ;
>         return blk ;

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to