aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/concurrent/AbstractQueueVisitor.java
diff options
context:
space:
mode:
authorGravatar Eric Fellheimer <felly@google.com>2015-10-09 18:39:19 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-10-12 08:35:43 +0000
commit8c54078ff8a9cf97c701c2c8269f4fe6c90cbcbc (patch)
treecb6542e74689f53cee91442cc7d1050575c60b91 /src/main/java/com/google/devtools/build/lib/concurrent/AbstractQueueVisitor.java
parent47182329400e359a7a6ad5857cf1854a4f9ec720 (diff)
Log immediately when AbstractQueueVisitor encounters a critical error.
If there's a holdup propagating the exception, at least we will see it in the logs. -- MOS_MIGRATED_REVID=105075242
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/concurrent/AbstractQueueVisitor.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/concurrent/AbstractQueueVisitor.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/concurrent/AbstractQueueVisitor.java b/src/main/java/com/google/devtools/build/lib/concurrent/AbstractQueueVisitor.java
index fe010c860a..e1a980ff97 100644
--- a/src/main/java/com/google/devtools/build/lib/concurrent/AbstractQueueVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/concurrent/AbstractQueueVisitor.java
@@ -29,6 +29,8 @@ import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
* AbstractQueueVisitor is a wrapper around {@link ThreadPoolExecutor} which
@@ -146,6 +148,8 @@ public class AbstractQueueVisitor {
*/
private boolean jobsMustBeStopped = false;
+ private static final Logger LOG = Logger.getLogger(AbstractQueueVisitor.class.getName());
+
/**
* Create the AbstractQueueVisitor.
*
@@ -600,7 +604,11 @@ public class AbstractQueueVisitor {
}
private boolean isCriticalErrorInternal(Throwable e) {
- return isCriticalError(e) || (e instanceof Error);
+ boolean isCritical = isCriticalError(e) || (e instanceof Error);
+ if (isCritical) {
+ LOG.log(Level.WARNING, "Found critical error in queue visitor", e);
+ }
+ return isCritical;
}
private void setRejectedExecutionHandler() {