[Mulgara-svn] r1935 - trunk/src/jar/server-rmi/java/org/mulgara/server/rmi

alexhall at mulgara.org alexhall at mulgara.org
Mon Apr 12 15:13:13 UTC 2010


Author: alexhall
Date: 2010-04-12 08:13:12 -0700 (Mon, 12 Apr 2010)
New Revision: 1935

Modified:
   trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java
Log:
Only generate stack traces when in debug mode

Modified: trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java
===================================================================
--- trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java	2010-04-12 15:12:23 UTC (rev 1934)
+++ trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java	2010-04-12 15:13:12 UTC (rev 1935)
@@ -100,7 +100,8 @@
   /**
    * Keeps the stack trace of where the answer was originally closed.
    */
-  private StackTrace closed;
+  private StackTrace closedTrace;
+  private boolean closed = false;
 
   //
   // Constructor
@@ -217,7 +218,7 @@
         // make onFirstPage false if the page is invalid
         onFirstPage = (currentPage != null);
         // Abandon the last prefetched page, and start a new prefetch thread
-        prefetchThread = new PrefetchThread(new StackTrace());
+        prefetchThread = new PrefetchThread();
       }
     } catch (RemoteException er) {
       logger.warn("RemoteException thrown in beforeFirst", er);
@@ -247,11 +248,13 @@
       prefetchThread = null;
     }
 
-    if (closed != null) {
-      logger.warn("Was already closed at: " + closed);
+    if (closed) {
+      logger.warn("Was already closed.");
+      if (closedTrace != null) logger.debug("Originally closed at: " + closedTrace);
       throw new TuplesException("Attempting to close answer twice.\n" + new StackTrace());
     }
-    closed = new StackTrace();
+    closed = true;
+    if (logger.isDebugEnabled()) closedTrace = new StackTrace();
 
     // no more references left, close the remote object
     try {
@@ -468,7 +471,7 @@
       page = remoteAnswer.nextPage();
     }
     // launch new prefetch thread
-    prefetchThread = new PrefetchThread(new StackTrace());
+    prefetchThread = new PrefetchThread();
 
     return page;
   }
@@ -521,14 +524,14 @@
     private boolean finished;
 
     /** Stack Trace for client-side invokation */
-    private StackTrace caller;
+    private final StackTrace caller;
 
     /**
      * Main constructor.  Starts the current thread.
      */
-    public PrefetchThread(StackTrace caller) {
+    public PrefetchThread() {
 
-      this.caller = caller;
+      this.caller = logger.isDebugEnabled() ? new StackTrace() : null;
       page = null;
       finished = false;
       start();
@@ -545,7 +548,8 @@
         // finished will never be set
 
         // log exception and include the stack trace that created this Thread.
-        logger.warn("Exception thrown in prefetchThread.\n" + caller);
+        logger.warn("Exception thrown in prefetchThread.");
+        if (caller != null) logger.debug("Prefetch caller: " + caller);
         logger.warn("Caused by", e);
       }
     }




More information about the Mulgara-svn mailing list