You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2013/01/22 17:20:12 UTC
[jira] [Resolved] (JENA-385) NPE during abort
[ https://issues.apache.org/jira/browse/JENA-385?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne resolved JENA-385.
--------------------------------
Resolution: Fixed
> NPE during abort
> ----------------
>
> Key: JENA-385
> URL: https://issues.apache.org/jira/browse/JENA-385
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Reporter: Simon Helsen
>
> we ran into a non-reproducible glitch where a transaction was unable to commit (we don't know exactly why - could be a network glitch or hard drive hickup). As a consequence, an abort was initiated which let to an NPE because the journalObjfile was already null. It happens in the following code in NodeTableTrans on the call to truncate.
> public void abort(Transaction txn)
> {
> debug("abort") ;
> if ( nodeTableJournal == null )
> throw new TDBTransactionException(txn.getLabel()+": Not in a transaction for a commit to happen") ;
> // Ensure the cache does not flush.
> nodeTableJournal = null ;
> // then make sure the journal file is empty.
> journalObjFile.truncate(journalObjFileStartOffset) ;
> journalObjFile.sync() ;
> finish() ;
> }
> Should there not just be a check here to verify if journalObjFile != null? So
> public void abort(Transaction txn)
> {
> debug("abort") ;
> if ( nodeTableJournal == null )
> throw new TDBTransactionException(txn.getLabel()+": Not in a transaction for a commit to happen") ;
> // Ensure the cache does not flush.
> nodeTableJournal = null ;
> // then make sure the journal file is empty.
> if (journalObjFile != null) {
> journalObjFile.truncate(journalObjFileStartOffset) ;
> journalObjFile.sync() ;
> }
> finish() ;
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira