Buggy code:
public class ImportNCBITaxonomy implements Executable { private static final Logger logger = Logger . getLogger ( "ImportNCBITaxonomy" ) ; private static FileHandler fh ; @ Override public void execute ( ArrayList < String > array ) { } public static void main ( String [ ] args ) { if ( ( args . length ) != 3 ) { System . out . println ( ( "This<seq2seq4repair_space>program<seq2seq4repair_space>expects<seq2seq4repair_space>three<seq2seq4repair_space>parameters:<seq2seq4repair_space>\n" + ( ( "1.<seq2seq4repair_space>Nodes<seq2seq4repair_space>DMP<seq2seq4repair_space>filename<seq2seq4repair_space>\n" + "2.<seq2seq4repair_space>Names<seq2seq4repair_space>DMP<seq2seq4repair_space>filename<seq2seq4repair_space>\n" ) + "3.<seq2seq4repair_space>Bio4j<seq2seq4repair_space>DB<seq2seq4repair_space>folder" ) ) ) ; } else { Bio4jManager manager = null ; Transaction txn = null ; int txnCounter = 0 ; int txnLimitForCommit = 10000 ; try { ImportNCBITaxonomy . fh = new FileHandler ( "ImportNCBITaxonomy.log" , true ) ; SimpleFormatter formatter = new SimpleFormatter ( ) ; ImportNCBITaxonomy . fh . setFormatter ( formatter ) ; ImportNCBITaxonomy . logger . addHandler ( ImportNCBITaxonomy . fh ) ; ImportNCBITaxonomy . logger . setLevel ( Level . ALL ) ; File nodesDumpFile = new File ( args [ 0 ] ) ; File namesDumpFile = new File ( args [ 1 ] ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "creating<seq2seq4repair_space>manager..." ) ; <START_BUG> manager = new Bio4jManager ( args [ 2 ] ) ; <END_BUG> NodeRetriever nodeRetriever = new NodeRetriever ( manager ) ; BufferedReader reader = new BufferedReader ( new FileReader ( nodesDumpFile ) ) ; String line = null ; HashMap < String , String > nodeParentMap = new HashMap < String , String > ( ) ; txn = manager . beginTransaction ( ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "reading<seq2seq4repair_space>nodes<seq2seq4repair_space>file..." ) ; while ( ( line = reader . readLine ( ) ) != null ) { if ( ( line . trim ( ) . length ( ) ) > 0 ) { String [ ] columns = line . split ( "\\|" ) ; NCBITaxonNode node = new NCBITaxonNode ( manager . createNode ( ) ) ; node . setNodeType ( NODE_TYPE ) ; node . setTaxId ( columns [ 0 ] . trim ( ) ) ; node . setRank ( columns [ 2 ] . trim ( ) ) ; node . setEmblCode ( columns [ 3 ] . trim ( ) ) ; manager . getNCBITaxonIdIndex ( ) . add ( node . getNode ( ) , NCBI_TAXON_ID_INDEX , node . getTaxId ( ) ) ; manager . getNodeTypeIndex ( ) . add ( node . getNode ( ) , NODE_TYPE_INDEX_NAME , NODE_TYPE ) ; nodeParentMap . put ( node . getTaxId ( ) , columns [ 1 ] . trim ( ) ) ; txnCounter ++ ; if ( ( txnCounter % txnLimitForCommit ) == 0 ) { txn . success ( ) ; txn . finish ( ) ; txn = manager . beginTransaction ( ) ; } } } txn . success ( ) ; txn . finish ( ) ; txn = manager . beginTransaction ( ) ; txnCounter = 0 ; reader . close ( ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "done!" ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "reading<seq2seq4repair_space>names<seq2seq4repair_space>file..." ) ; reader = new BufferedReader ( new FileReader ( namesDumpFile ) ) ; while ( ( line = reader . readLine ( ) ) != null ) { String [ ] columns = line . split ( "\\|" ) ; if ( columns [ ( ( columns . length ) - 1 ) ] . trim ( ) . equals ( "scientific<seq2seq4repair_space>name" ) ) { String taxId = columns [ 0 ] . trim ( ) ; String nameSt = columns [ 1 ] . trim ( ) ; NCBITaxonNode node = nodeRetriever . getNCBITaxonByTaxId ( taxId ) ; node . setScientificName ( nameSt ) ; txnCounter ++ ; if ( ( txnCounter % txnLimitForCommit ) == 0 ) { txn . success ( ) ; txn . finish ( ) ; txn = manager . beginTransaction ( ) ; } } } reader . close ( ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "done!" ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "storing<seq2seq4repair_space>relationships..." ) ; txn . success ( ) ; txn . finish ( ) ; txn = manager . beginTransaction ( ) ; txnCounter = 0 ; Set < String > nodesSet = nodeParentMap . keySet ( ) ; for ( String nodeTaxId : nodesSet ) { String parentTaxId = nodeParentMap . get ( nodeTaxId ) ; NCBITaxonNode currentNode = nodeRetriever . getNCBITaxonByTaxId ( nodeTaxId ) ; if ( ! ( nodeTaxId . equals ( parentTaxId ) ) ) { NCBITaxonNode parentNode = nodeRetriever . getNCBITaxonByTaxId ( parentTaxId ) ; parentNode . getNode ( ) . createRelationshipTo ( currentNode . getNode ( ) , new NCBITaxonParentRel ( null ) ) ; } else { manager . getReferenceNode ( ) . createRelationshipTo ( currentNode . getNode ( ) , new NCBIMainTaxonRel ( null ) ) ; } txnCounter ++ ; if ( ( txnCounter % txnLimitForCommit ) == 0 ) { txn . success ( ) ; txn . finish ( ) ; txn = manager . beginTransaction ( ) ; } } txn . success ( ) ; txn . finish ( ) ; txn = manager . beginTransaction ( ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "Done!" ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "Associating<seq2seq4repair_space>uniprot<seq2seq4repair_space>taxonomy..." ) ; ImportNCBITaxonomy . associateTaxonomy ( nodeRetriever . getMainTaxon ( ) , nodeRetriever , new NCBITaxonRel ( null ) ) ; ImportNCBITaxonomy . logger . log ( Level . INFO , "Done!" ) ; txn . success ( ) ; } catch ( Exception ex ) { Logger . getLogger ( ImportNCBITaxonomy . class . getName ( ) ) . log ( Level . SEVERE , null , ex ) ; txn . failure ( ) ; }

Fix:
manager = new Bio4jManager ( args [ 2 ] , true , false ) ;