You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/09/07 19:13:30 UTC

svn commit: r812227 - in /incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent: DebuggableScheduledThreadPoolExecutor.java DebuggableThreadPoolExecutor.java

Author: jbellis
Date: Mon Sep  7 17:13:30 2009
New Revision: 812227

URL: http://svn.apache.org/viewvc?rev=812227&view=rev
Log:
log errors in futuretasks in DScheduledTPE like in DTPE (and clean out unused threadlocal hack).  patch by jbellis; reviewed by Eric Evans for CASSANDRA-425

Modified:
    incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java
    incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java

Modified: incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java?rev=812227&r1=812226&r2=812227&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java (original)
+++ incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java Mon Sep  7 17:13:30 2009
@@ -46,29 +46,11 @@
     public void afterExecute(Runnable r, Throwable t)
     {
         super.afterExecute(r,t);
-        if ( t != null )
-        {  
-            Context ctx = ThreadLocalContext.get();
-            if ( ctx != null )
-            {
-                Object object = ctx.get(r.getClass().getName());
-                
-                if ( object != null )
-                {
-                    logger_.info("**** In afterExecute() " + t.getClass().getName() + " occured while working with " + object + " ****");
-                }
-                else
-                {
-                    logger_.info("**** In afterExecute() " + t.getClass().getName() + " occured ****");
-                }
-            }
-            
-            Throwable cause = t.getCause();
-            if ( cause != null )
-            {
-                logger_.info( LogUtil.throwableToString(cause) );
-            }
-            logger_.info( LogUtil.throwableToString(t) );
+
+        DebuggableThreadPoolExecutor.logFutureExceptions(r);
+        if (t != null)
+        {
+            logger_.error("Error in ThreadPoolExecutor", t);
         }
     }
 }

Modified: incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java?rev=812227&r1=812226&r2=812227&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java (original)
+++ incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java Mon Sep  7 17:13:30 2009
@@ -79,35 +79,29 @@
     {
         super.afterExecute(r,t);
 
-        if (r instanceof FutureTask) {
-            assert t == null;
+        logFutureExceptions(r);
+        if (t != null)
+        {
+            logger_.error("Error in ThreadPoolExecutor", t);
+        }
+    }
+
+    public static void logFutureExceptions(Runnable r)
+    {
+        if (r instanceof FutureTask)
+        {
             try
             {
                 ((FutureTask)r).get();
             }
             catch (InterruptedException e)
             {
-                throw new RuntimeException(e);
+                throw new AssertionError(e);
             }
             catch (ExecutionException e)
             {
-                t = e;
+                logger_.error("Error in executor futuretask", e);
             }
         }
-
-        if ( t != null )
-        {  
-            Context ctx = ThreadLocalContext.get();
-            if ( ctx != null )
-            {
-                Object object = ctx.get(r.getClass().getName());
-                
-                if ( object != null )
-                {
-                    logger_.error("In afterExecute() " + t.getClass().getName() + " occured while working with " + object);
-                }
-            }
-            logger_.error("Error in ThreadPoolExecutor", t);
-        }
     }
 }