changeset 389:cfbc2b43142e

Fix a crash in HeapDAO reviewed-by: rkennke review-thread: http://icedtea.classpath.org/pipermail/thermostat/2012-June/001890.html
author Mario Torre <neugens.limasoftware@gmail.com>
date Tue, 19 Jun 2012 19:00:28 +0200
parents 5b3cb3635fca
children 7a5ea4137f04
files common/core/src/main/java/com/redhat/thermostat/common/dao/HeapDAOImpl.java common/core/src/test/java/com/redhat/thermostat/common/dao/HeapDAOTest.java
diffstat 2 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/common/core/src/main/java/com/redhat/thermostat/common/dao/HeapDAOImpl.java	Tue Jun 19 14:38:18 2012 +0200
+++ b/common/core/src/main/java/com/redhat/thermostat/common/dao/HeapDAOImpl.java	Tue Jun 19 19:00:28 2012 +0200
@@ -52,6 +52,7 @@
 
     HeapDAOImpl(Storage storage) {
         this.storage = storage;
+        storage.createConnectionKey(heapInfoCategory);
     }
 
     @Override
@@ -66,7 +67,6 @@
         if (heapDumpData != null) {
             chunk.put(heapDumpIdKey, heapDumpId);
         }
-        storage.createConnectionKey(heapInfoCategory);
         storage.putChunk(chunk);
         if (heapDumpData != null) {
             storage.saveFile(heapDumpId, heapDumpData);
@@ -75,6 +75,7 @@
 
     @Override
     public Collection<HeapInfo> getAllHeapInfo(VmRef vm) {
+
         Chunk query = new Chunk(heapInfoCategory, false);
         query.put(Key.AGENT_ID, vm.getAgent().getAgentId());
         query.put(Key.VM_ID, vm.getId());
--- a/common/core/src/test/java/com/redhat/thermostat/common/dao/HeapDAOTest.java	Tue Jun 19 14:38:18 2012 +0200
+++ b/common/core/src/test/java/com/redhat/thermostat/common/dao/HeapDAOTest.java	Tue Jun 19 19:00:28 2012 +0200
@@ -76,6 +76,7 @@
     public void setUp() {
         storage = mock(Storage.class);
         dao = new HeapDAOImpl(storage);
+        
         HostRef host = new HostRef("987", "test-host");
         VmRef vm = new VmRef(host, 123, "test-vm");
         heapInfo = new HeapInfo(vm, 12345);
@@ -154,6 +155,11 @@
 
     @Test
     public void testGetAllHeapInfo() {
+        
+        // verify a connection key has been created before requesting the
+        // heap dumps
+        verify(storage).createConnectionKey(HeapDAO.heapInfoCategory);
+        
         HostRef host = new HostRef("123", "test-host");
         VmRef vm = new VmRef(host, 234, "test-vm");
         Collection<HeapInfo> heapInfos = dao.getAllHeapInfo(vm);