From 222762fb3fd896c13f04dd318b7c8833e503c996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?maplefang=E6=96=B9=E9=95=BF=E9=9D=92?= Date: Thu, 6 Dec 2018 11:13:31 +0800 Subject: [PATCH 1/3] Fix ScheduledSingleThreadExecutor.awaitTermination exception for nanotime calculation error --- .../concurrent/util/ScheduledSingleThreadExecutor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ScheduledSingleThreadExecutor.java b/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ScheduledSingleThreadExecutor.java index ba59da4d16..50b1cbd8e1 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ScheduledSingleThreadExecutor.java +++ b/quasar-core/src/main/java/co/paralleluniverse/concurrent/util/ScheduledSingleThreadExecutor.java @@ -710,7 +710,7 @@ public List shutdownNow() { public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { long nanos = unit.toNanos(timeout); long millis = TimeUnit.MILLISECONDS.convert(nanos, TimeUnit.NANOSECONDS); - worker.join(millis, (int) (nanos - millis)); + worker.join(millis, (int) (nanos - millis * 1000000)); return !worker.isAlive(); } @@ -742,4 +742,4 @@ public int getPoolSize() { public int getActiveCount() { return 1; } -} \ No newline at end of file +} From 6b8bb4e2eb18b904c59cc5239d23961b21fa6181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?maplefang=E6=96=B9=E9=95=BF=E9=9D=92?= Date: Sat, 8 Dec 2018 21:32:39 +0800 Subject: [PATCH 2/3] Fix JMXFibersMonitor.getNumRunnableFibers throw null pointer exception --- .../main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/quasar-core/src/main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java b/quasar-core/src/main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java index 9bc0375f9e..ca3e78f9fd 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java +++ b/quasar-core/src/main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java @@ -217,6 +217,9 @@ else if (t.getState() == Thread.State.RUNNABLE) @Override public Map getRunawayFibers() { Map map = new HashMap<>(); + if (problemFibers == null) { + return map; + } for (Map.Entry e : problemFibers.entrySet()) map.put(e.getKey().toString(), Strand.toString(e.getValue())); return map; From fba615d216c99cf40c5c46d4b48abb47aab6ee79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?maplefang=E6=96=B9=E9=95=BF=E9=9D=92?= Date: Sat, 8 Dec 2018 21:38:30 +0800 Subject: [PATCH 3/3] Fix JMXFibersMonitor.getNumRunnableFibers throw null pointer exception --- .../java/co/paralleluniverse/fibers/JMXFibersMonitor.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/quasar-core/src/main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java b/quasar-core/src/main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java index ca3e78f9fd..d0b398fef0 100644 --- a/quasar-core/src/main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java +++ b/quasar-core/src/main/java/co/paralleluniverse/fibers/JMXFibersMonitor.java @@ -217,9 +217,9 @@ else if (t.getState() == Thread.State.RUNNABLE) @Override public Map getRunawayFibers() { Map map = new HashMap<>(); - if (problemFibers == null) { - return map; - } + if (problemFibers == null) { + return map; + } for (Map.Entry e : problemFibers.entrySet()) map.put(e.getKey().toString(), Strand.toString(e.getValue())); return map;