You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/08/15 21:49:50 UTC

svn commit: r1157969 - in /incubator/jena/Experimental/TxTDB/trunk: src-dev/tx/ src/main/java/com/hp/hpl/jena/tdb/ src/main/java/com/hp/hpl/jena/tdb/transaction/ src/test/java/com/hp/hpl/jena/tdb/transaction/

Author: andy
Date: Mon Aug 15 19:49:49 2011
New Revision: 1157969

URL: http://svn.apache.org/viewvc?rev=1157969&view=rev
Log:
JENA-95 Close subresources in NodeTableTrans at end of transaction.

Modified:
    incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java

Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java?rev=1157969&r1=1157968&r2=1157969&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java Mon Aug 15 19:49:49 2011
@@ -4,6 +4,7 @@ package tx;
 public class DevTx
 {
     // ----
+    // Make sure that transactional object can't be used after abort/commit/close.
     // 1 -- Root is not root! (overlapping reads?) [done]
     // 2 -- BulkUpdateHandlerTDB.removeAll [failed to reproduce]
     

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java?rev=1157969&r1=1157968&r2=1157969&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java Mon Aug 15 19:49:49 2011
@@ -97,7 +97,7 @@ public class StoreConnection
     }
     
     /** Stop managing a location. */  
-    public static synchronized void expel(Location location)    { expel(location, false) ; }
+    public static synchronized void release(Location location)    { expel(location, false) ; }
         
     /** Stop managing a location. */  
     private static synchronized void expel(Location location, boolean force)

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java?rev=1157969&r1=1157968&r2=1157969&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java Mon Aug 15 19:49:49 2011
@@ -197,6 +197,7 @@ public class NodeTableTrans implements N
     {
         passthrough = true ;
         nodeTableJournal = null ;
+        close() ;
    }
 
     @Override
@@ -212,7 +213,9 @@ public class NodeTableTrans implements N
 
     @Override
     public void close()
-    {}
+    {
+        journal.close() ;
+    }
 
     @Override
     public String toString() { return "NodeTableTrans:"+label ; }

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java?rev=1157969&r1=1157968&r2=1157969&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java Mon Aug 15 19:49:49 2011
@@ -185,13 +185,14 @@ public class TransactionManager
             {
                 // Can commit immediately.
                 // Ensure the queue is empty though.
+                // Could simply add txn to the commit queue and do it that way.  
                 processDelayedReplayQueue(txn) ;
                 enactTransaction(txn) ;
                 JournalControl.replay(txn) ;
             }
             else
             {
-                // Can't make permanent at the moment.
+                // Can't write back to the base database at the moment.
                 commitedAwaitingFlush.add(txn) ;
                 maxQueue = Math.max(commitedAwaitingFlush.size(), maxQueue) ;
                 log("Queue commit flush", txn) ; 

Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java?rev=1157969&r1=1157968&r2=1157969&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java Mon Aug 15 19:49:49 2011
@@ -455,7 +455,7 @@ public abstract class AbstractTestTransS
         DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
         dsgW1.commit() ;
         dsgW1.close() ;
-        StoreConnection.expel(sConn.getLocation()) ;
+        StoreConnection.release(sConn.getLocation()) ;
         StoreConnection sConn2 = getStoreConnection() ;
     }
     
@@ -471,7 +471,7 @@ public abstract class AbstractTestTransS
         dsgW1.close() ;
         dsgR1.close();
         
-        StoreConnection.expel(sConn.getLocation()) ;
+        StoreConnection.release(sConn.getLocation()) ;
         sConn = null ;
         
         StoreConnection sConn2 = getStoreConnection() ;
@@ -487,7 +487,7 @@ public abstract class AbstractTestTransS
         // Expel.
         StoreConnection sConn = getStoreConnection() ;
         DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
-        StoreConnection.expel(sConn.getLocation()) ;
+        StoreConnection.release(sConn.getLocation()) ;
     }
 
     

Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java?rev=1157969&r1=1157968&r2=1157969&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java Mon Aug 15 19:49:49 2011
@@ -39,6 +39,7 @@ import com.hp.hpl.jena.datatypes.xsd.XSD
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.sparql.core.Quad ;
 import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.tdb.ConfigTest ;
 import com.hp.hpl.jena.tdb.DatasetGraphTxn ;
 import com.hp.hpl.jena.tdb.ReadWrite ;
 import com.hp.hpl.jena.tdb.StoreConnection ;
@@ -51,7 +52,10 @@ public class TestTransSystem
     static { org.openjena.atlas.logging.Log.setLog4j() ; }
     private static Logger log = LoggerFactory.getLogger(TestTransSystem.class) ;
 
-    static final int Iterations             = 1000 ;
+    static final Location LOC = new Location(ConfigTest.getTestingDirDB()) ;
+    //static final Location LOC = Location.mem() ;    
+
+    static final int Iterations             = 100 ;
     // Output style.
     static boolean inlineProgress           = true ; // (! log.isDebugEnabled()) && Iterations > 20 ;
     static boolean logging                  = ! inlineProgress ; // (! log.isDebugEnabled()) && Iterations > 20 ;
@@ -95,6 +99,8 @@ public class TestTransSystem
         
         for ( i = 0 ; i < Iterations ; i++ )
         {
+            clean() ;
+            
             if (!inlineProgress && logging)
                 log.info(format("Iteration: %d\n", i)) ;
             if ( inlineProgress )
@@ -118,6 +124,12 @@ public class TestTransSystem
             log.info("FINISH ({})", i) ;
     }
     
+    private static void clean()
+    {
+        if ( ! LOC.isMem() )
+            FileOps.clearDirectory(LOC.getDirectoryPath()) ;
+    }
+
     static class Reader implements Callable<Object>
     {
         private final int repeats ;
@@ -385,8 +397,6 @@ public class TestTransSystem
 
     static Quad q4 = SSE.parseQuad("(_ <s> <p> <o4>)") ;
 
-    static final Location LOC = Location.mem() ;
-
     private static int initCount = -1 ;
 
     //static final Location LOC = new Location(ConfigTest.getTestingDirDB()) ;