[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