You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2015/09/20 22:05:38 UTC

svn commit: r1704182 - /poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/MemoryUsage.java

Author: centic
Date: Sun Sep 20 20:05:36 2015
New Revision: 1704182

URL: http://svn.apache.org/viewvc?rev=1704182&view=rev
Log:
Bug 58332: Adjust implementation of dev-util 'MemoryUsage' to print out information if limits are reached instead of OOM

Modified:
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/MemoryUsage.java

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/MemoryUsage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/MemoryUsage.java?rev=1704182&r1=1704181&r2=1704182&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/MemoryUsage.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/MemoryUsage.java Sun Sep 20 20:05:36 2015
@@ -37,6 +37,10 @@ import java.util.ArrayList;
  */
 public class MemoryUsage extends TestCase {
     private static final int NUM_COLUMNS = 255;
+    
+    private static void printMemoryUsage(String msg) {
+        System.out.println(" Memory (" + msg + "): " + Runtime.getRuntime().totalMemory()/(1024*1024) + "MB");
+    }
 
     /**
      * Generate a spreadsheet until OutOfMemoryError
@@ -50,7 +54,7 @@ public class MemoryUsage extends TestCas
     public static void mixedSpreadsheet(Workbook wb, int numCols){
 
         System.out.println("Testing " + wb.getClass().getName());
-        System.out.println("Memory: " + Runtime.getRuntime().totalMemory()/(1024*1024) + "MB");
+        printMemoryUsage("before");
         int i=0, cnt=0;
         try {
             Sheet sh = wb.createSheet();
@@ -65,8 +69,11 @@ public class MemoryUsage extends TestCas
             }
         } catch (OutOfMemoryError er){
             System.out.println("Failed at row=" + i + ", objects : " + cnt);
+        } catch (final Exception e) {
+            System.out.println("Unable to reach an OutOfMemoryError");
+            System.out.println(e.getClass().getName() + ": " + e.getMessage());
         }
-        System.out.println("Memory: " + Runtime.getRuntime().totalMemory()/(1024*1024) + "MB");
+        printMemoryUsage("after");
     }
 
     /**
@@ -74,7 +81,7 @@ public class MemoryUsage extends TestCas
      * The data is generated until OutOfMemoryError. 
      * <p>
      * as compared to {@link #mixedSpreadsheet(org.apache.poi.ss.usermodel.Workbook, int)},
-     * this method does not set string values and, hence, does not invole the Shared Strings Table.
+     * this method does not set string values and, hence, does not involve the Shared Strings Table.
      * </p>
      *
      * @param wb        the workbook to write to
@@ -83,7 +90,7 @@ public class MemoryUsage extends TestCas
     public static void numberSpreadsheet(Workbook wb, int numCols){
 
         System.out.println("Testing " + wb.getClass().getName());
-        System.out.println("Memory: " + Runtime.getRuntime().totalMemory()/(1024*1024) + "MB");
+        printMemoryUsage("before");
         int i=0, cnt=0;
         try {
             Sheet sh = wb.createSheet();
@@ -97,8 +104,11 @@ public class MemoryUsage extends TestCas
             }
         } catch (OutOfMemoryError er){
             System.out.println("Failed at row=" + i + ", objects : " + cnt);
+        } catch (final Exception e) {
+            System.out.println("Unable to reach an OutOfMemoryError");
+            System.out.println(e.getClass().getName() + ": " + e.getMessage());
         }
-        System.out.println("Memory: " + Runtime.getRuntime().totalMemory()/(1024*1024) + "MB");
+        printMemoryUsage("after");
     }
 
     /**
@@ -111,7 +121,7 @@ public class MemoryUsage extends TestCas
      */
     public static void xmlBeans(int numCols) {
         int i = 0, cnt = 0;
-        System.out.println("Memory: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + "MB");
+        printMemoryUsage("before");
 
         CTWorksheet sh = CTWorksheet.Factory.newInstance();
         CTSheetData data = sh.addNewSheetData();
@@ -128,8 +138,11 @@ public class MemoryUsage extends TestCas
             }
         } catch (OutOfMemoryError er) {
             System.out.println("Failed at row=" + i + ", objects: " + cnt);
+        } catch (final Exception e) {
+            System.out.println("Unable to reach an OutOfMemoryError");
+            System.out.println(e.getClass().getName() + ": " + e.getMessage());
         }
-        System.out.println("Memory: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + "MB");
+        printMemoryUsage("after");
     }
 
     /**
@@ -149,17 +162,21 @@ public class MemoryUsage extends TestCas
             }
         } catch (OutOfMemoryError er) {
             System.out.println("Failed at row=" + i);
+        } catch (final Exception e) {
+            System.out.println("Unable to reach an OutOfMemoryError");
+            System.out.println(e.getClass().getName() + ": " + e.getMessage());
         }
-        System.out.println("Memory: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + "MB");
+        printMemoryUsage("after");
     }
 
     /**
-     * Generate atatched (having a parent bean) Xml beans until OutOfMemoryError.
+     * Generate attached (having a parent bean) Xml beans until OutOfMemoryError.
      * This is MUCH more memory-efficient than {@link #testXmlDetached()}
      *
      * @see #testXmlAttached()
      */
     public void testXmlAttached(){
+        printMemoryUsage("before");
         List<CTRow> rows = new ArrayList<CTRow>();
         int i = 0;
         //top-level element in sheet.xml
@@ -174,8 +191,11 @@ public class MemoryUsage extends TestCas
             }
         } catch (OutOfMemoryError er) {
             System.out.println("Failed at row=" + i);
+        } catch (final Exception e) {
+            System.out.println("Unable to reach an OutOfMemoryError");
+            System.out.println(e.getClass().getName() + ": " + e.getMessage());
         }
-        System.out.println("Memory: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + "MB");
+        printMemoryUsage("after");
     }
 
     public void testMixedHSSF(){



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org