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);
- }
}
}