changeset 856:a0536f7b3be7

Cache Thread Harvester JMX bean review-thread: http://icedtea.classpath.org/pipermail/thermostat/2012-December/004726.html reviewed-by: omajid
author Mario Torre <neugens.limasoftware@gmail.com>
date Fri, 14 Dec 2012 12:53:09 +0100
parents fac3b36775fc
children 8211cecd53df
files thread/harvester/src/main/java/com/redhat/thermostat/thread/harvester/Harvester.java thread/harvester/src/test/java/com/redhat/thermostat/thread/harvester/HarvesterTest.java
diffstat 2 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/thread/harvester/src/main/java/com/redhat/thermostat/thread/harvester/Harvester.java	Wed Dec 12 19:49:12 2012 -0500
+++ b/thread/harvester/src/main/java/com/redhat/thermostat/thread/harvester/Harvester.java	Fri Dec 14 12:53:09 2012 +0100
@@ -104,7 +104,7 @@
         }
         
         isConnected = true;
-        harvester = threadPool.scheduleAtFixedRate(new HarvesterAction(), 0, 1, TimeUnit.SECONDS);
+        harvester = threadPool.scheduleAtFixedRate(new HarvesterAction(), 0, 250, TimeUnit.MILLISECONDS);
         
         return isConnected;
     }
@@ -119,6 +119,11 @@
         }
         
         harvester.cancel(false);
+        
+        if (collectorBean != null) {
+            collectorBean = null;
+        }
+        
         isConnected = false;
 
         boolean stillConnected = false;
@@ -166,7 +171,9 @@
           
           ThreadSummary summary = new ThreadSummary();
           
-          collectorBean = getDataCollectorBean(connection);
+          if (collectorBean == null) {
+              collectorBean = getDataCollectorBean(connection);
+          }
           
           summary.setCurrentLiveThreads(collectorBean.getThreadCount());
           summary.setCurrentDaemonThreads(collectorBean.getDaemonThreadCount());
--- a/thread/harvester/src/test/java/com/redhat/thermostat/thread/harvester/HarvesterTest.java	Wed Dec 12 19:49:12 2012 -0500
+++ b/thread/harvester/src/test/java/com/redhat/thermostat/thread/harvester/HarvesterTest.java	Fri Dec 14 12:53:09 2012 +0100
@@ -99,8 +99,8 @@
         verify(executor).scheduleAtFixedRate(any(Runnable.class), anyLong(), anyLong(), any(TimeUnit.class));
         
         assertTrue(arg1.getValue() == 0);
-        assertTrue(arg2.getValue() == 1);
-        assertEquals(TimeUnit.SECONDS, arg3.getValue());
+        assertTrue(arg2.getValue() == 250);
+        assertEquals(TimeUnit.MILLISECONDS, arg3.getValue());
         
         Runnable action = arg0.getValue();
         assertNotNull(action);
@@ -148,8 +148,8 @@
         verify(executor, times(1)).scheduleAtFixedRate(any(Runnable.class), anyLong(), anyLong(), any(TimeUnit.class));
         
         assertTrue(arg1.getValue() == 0);
-        assertTrue(arg2.getValue() == 1);
-        assertEquals(TimeUnit.SECONDS, arg3.getValue());
+        assertTrue(arg2.getValue() == 250);
+        assertEquals(TimeUnit.MILLISECONDS, arg3.getValue());
         
         Runnable action = arg0.getValue();
         assertNotNull(action);