[Mulgara-svn] r1148 - trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa

pag at mulgara.org pag at mulgara.org
Fri Aug 22 04:56:56 UTC 2008


Author: pag
Date: 2008-08-21 21:56:55 -0700 (Thu, 21 Aug 2008)
New Revision: 1148

Modified:
   trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa/CacheLine.java
   trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa/HybridTuples.java
Log:
wrapped stacktrace generation in ifDebugEnabled calls, to improve processing time. Thanks to Morten Grouleff for this patch

Modified: trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa/CacheLine.java
===================================================================
--- trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa/CacheLine.java	2008-08-20 15:46:08 UTC (rev 1147)
+++ trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa/CacheLine.java	2008-08-22 04:56:55 UTC (rev 1148)
@@ -30,13 +30,15 @@
 
   protected final int segmentSize;
 
-  protected StackTrace closed;
+  protected StackTrace closedBy;
   protected int firstCloser;
 
+  private boolean closed;
 
+
   public CacheLine(int size) {
     this.segmentSize = size;
-    this.closed = null;
+    this.closedBy = null;
   }
 
 
@@ -62,20 +64,24 @@
 
 
   public void reset(long[] prefix) throws TuplesException {
-    if (closed != null) {
-      throw new TuplesException("Attempt to reset closed MemoryCacheLine");
-    }
+    if (closed) throw new TuplesException("Attempt to reset closed MemoryCacheLine");
   }
 
 
   public void close(int closer) throws TuplesException {
-    if (closed != null) {
-      logger.error("Attempt to close CacheLine twice by " + closer + new StackTrace());
-      logger.error("    First closed at " + closed);
-      logger.error("    First closed by " + firstCloser);
+    if (closed) {
+      if (logger.isDebugEnabled()) {
+        logger.debug("Attempt to close CacheLine twice by " + closer + new StackTrace());
+        logger.debug("    First closed at " + closedBy);
+        logger.debug("    First closed by " + firstCloser);
+      } else {
+        logger.error("Attempt to close CacheLine twice. Enable debug to trace how.");
+        logger.error("    First closed by " + firstCloser);
+      }
       throw new TuplesException("Attempt to close CacheLine twice");
     }
-    closed = new StackTrace();
+    closed = true;
+    if (logger.isDebugEnabled()) closedBy = new StackTrace();
     firstCloser = closer;
   }
 

Modified: trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa/HybridTuples.java
===================================================================
--- trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa/HybridTuples.java	2008-08-20 15:46:08 UTC (rev 1147)
+++ trunk/src/jar/tuples-hybrid/java/org/mulgara/store/xa/HybridTuples.java	2008-08-22 04:56:55 UTC (rev 1148)
@@ -111,11 +111,12 @@
   protected long[] tempTuple;
 
   protected int[] varLookupList;
+  private boolean closed = false;
 
   // Debugging.
   private final static Logger logger = Logger.getLogger(HybridTuples.class);
-  private StackTrace allocated;
-  private StackTrace closed;
+  private StackTrace allocatedBy;
+  private StackTrace closedBy;
 
 
 
@@ -170,7 +171,7 @@
     } else {
       this.tuples = TuplesOperations.empty();
     }
-    this.allocated = new StackTrace();
+    if (logger.isDebugEnabled()) this.allocatedBy = new StackTrace();
   }
 
 
@@ -279,7 +280,7 @@
       if (blockFile != null) {
         blockFileRefCount.refCount++;
       }
-      copy.allocated = new StackTrace();
+      if (logger.isDebugEnabled()) copy.allocatedBy = new StackTrace();
       copy.tuples = (Tuples)tuples.clone();
 
       return copy;
@@ -306,14 +307,19 @@
    * Required by Cursor.
    */
   public void close() throws TuplesException {
-    if (closed != null) {
-      logger.error("Attempt to close HybridTuples twice; first closed: " + closed);
-      logger.error("Attempt to close HybridTuples twice; second closed: " + new StackTrace());
-      logger.error("    allocated: " + allocated);
+    if (closed) {
+      if (logger.isDebugEnabled()) {
+          logger.debug("Attempt to close HybridTuples twice; first closed: " + closedBy);
+          logger.debug("Attempt to close HybridTuples twice; second closed: " + new StackTrace());
+          logger.debug("    allocated: " + allocatedBy);
+      } else {
+          logger.error("Attempt to close HybridTuples twice. Enable debug to trace how.");
+      }
       throw new TuplesException("Attempted to close HybribTuples more than once");
     }
-    closed = new StackTrace();
-
+    closed = true;
+    if (logger.isDebugEnabled()) closedBy = new StackTrace();
+    
     for (int i = 0; i < heapCache.length; i++) {
       heapCache[i].close(System.identityHashCode(this));
     }
@@ -338,9 +344,7 @@
    */
   public int getColumnIndex(Variable variable) throws TuplesException {
     for (int c = 0; c < vars.length; c++) {
-      if (vars[c].equals(variable)) {
-        return c;
-      }
+      if (vars[c].equals(variable)) return c;
     }
 
     logger.warn("Variable not found: " + variable);




More information about the Mulgara-svn mailing list