[
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