Updated Branches:
  refs/heads/karaf-2.3.x f5f091e2c -> fb2176ab5

[KARAF-2449] Minor improvements on the heapdump and memory dump providers


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/fb2176ab
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/fb2176ab
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/fb2176ab

Branch: refs/heads/karaf-2.3.x
Commit: fb2176ab5180204672a40d49c07b96f4794df305
Parents: f5f091e
Author: Jean-Baptiste Onofré <[email protected]>
Authored: Tue Feb 11 02:44:20 2014 +0100
Committer: Jean-Baptiste Onofré <[email protected]>
Committed: Tue Feb 11 02:44:20 2014 +0100

----------------------------------------------------------------------
 .../karaf/diagnostic/common/HeapDumpProvider.java  | 17 ++++++++++++-----
 .../diagnostic/common/MemoryDumpProvider.java      |  5 +----
 2 files changed, 13 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/fb2176ab/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/HeapDumpProvider.java
----------------------------------------------------------------------
diff --git 
a/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/HeapDumpProvider.java
 
b/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/HeapDumpProvider.java
index 8628daf..8d4c2a2 100644
--- 
a/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/HeapDumpProvider.java
+++ 
b/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/HeapDumpProvider.java
@@ -29,6 +29,8 @@ import java.lang.management.ManagementFactory;
 public class HeapDumpProvider implements DumpProvider {
 
     public void createDump(DumpDestination destination) throws Exception {
+        FileInputStream in = null;
+        OutputStream out = null;
         try {
             MBeanServer mBeanServer = 
ManagementFactory.getPlatformMBeanServer();
             HotSpotDiagnosticMXBean diagnosticMXBean = 
ManagementFactory.newPlatformMXBeanProxy(mBeanServer,
@@ -36,21 +38,26 @@ public class HeapDumpProvider implements DumpProvider {
             diagnosticMXBean.dumpHeap("heapdump.txt", false);
             // copy the dump in the destination
             File heapDumpFile = new File("heapdump.txt");
-            FileInputStream in = new FileInputStream(heapDumpFile);
-            OutputStream out = destination.add("heapdump.txt");
+            in = new FileInputStream(heapDumpFile);
+            out = destination.add("heapdump.txt");
             byte[] buffer = new byte[2048];
             while ((in.read(buffer) != -1)) {
                 out.write(buffer);
             }
-            in.close();
-            out.flush();
-            out.close();
             // remove the original dump
             if (heapDumpFile.exists()) {
                 heapDumpFile.delete();
             }
         } catch (Exception e) {
             // nothing to do
+        } finally {
+            if (in != null) {
+                in.close();
+            }
+            if (out != null) {
+                out.flush();
+                out.close();
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/fb2176ab/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/MemoryDumpProvider.java
----------------------------------------------------------------------
diff --git 
a/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/MemoryDumpProvider.java
 
b/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/MemoryDumpProvider.java
index d0d2e32..f05fd2c 100644
--- 
a/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/MemoryDumpProvider.java
+++ 
b/diagnostic/common/src/main/java/org/apache/karaf/diagnostic/common/MemoryDumpProvider.java
@@ -23,13 +23,10 @@ import java.io.OutputStreamWriter;
 import java.lang.management.MemoryMXBean;
 
 /**
- * Provider which dump the heap to file heap.txt
+ * Provider which provide memory information in memory.txt file
  */
 public class MemoryDumpProvider extends TextDumpProvider {
 
-    /**
-     * Create a new dump entry which contains information about memory usage.
-     */
     public MemoryDumpProvider() {
         super("memory.txt");
     }

Reply via email to