You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2015/10/06 02:04:12 UTC

svn commit: r1706937 - in /poi/trunk/src: examples/src/org/apache/poi/hssf/usermodel/examples/ examples/src/org/apache/poi/hwpf/ examples/src/org/apache/poi/xssf/streaming/examples/ java/org/apache/poi/hssf/record/ java/org/apache/poi/poifs/crypt/ java...

Author: kiwiwings
Date: Tue Oct  6 00:04:12 2015
New Revision: 1706937

URL: http://svn.apache.org/viewvc?rev=1706937&view=rev
Log:
sonar fixes and closing resources after use

Modified:
    poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/InCellLists.java
    poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/Outlines.java
    poi/trunk/src/examples/src/org/apache/poi/hwpf/Word2Forrest.java
    poi/trunk/src/examples/src/org/apache/poi/xssf/streaming/examples/Outlining.java
    poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java
    poi/trunk/src/java/org/apache/poi/poifs/crypt/CipherAlgorithm.java
    poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java
    poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java
    poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java
    poi/trunk/src/java/org/apache/poi/ss/util/SSCellRange.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetUpdateArrayFormulas.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextBytesAtom.java
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java
    poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java

Modified: poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/InCellLists.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/InCellLists.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/InCellLists.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/InCellLists.java Tue Oct  6 00:04:12 2015
@@ -66,7 +66,7 @@ public class InCellLists {
      * @param outputFilename A String that encapsulates the name of and path to
      *                       the Excel spreadsheet file this code will create.
      */
-    public void demonstrateMethodCalls(String outputFilename) {
+    public void demonstrateMethodCalls(String outputFilename) throws IOException {
         HSSFWorkbook workbook = null;
         HSSFSheet sheet = null;
         HSSFRow row = null;
@@ -75,7 +75,6 @@ public class InCellLists {
         FileOutputStream fos = null;
         ArrayList<MultiLevelListItem> multiLevelListItems = null;
         ArrayList<String> listItems = null;
-        String listItem = null;
         try {
             workbook = new HSSFWorkbook();
             sheet = workbook.createSheet("In Cell Lists");
@@ -188,13 +187,11 @@ public class InCellLists {
             ioEx.printStackTrace(System.out);
         }
         finally {
-            if(fos != null) {
-                try {
-                    fos.close();
-                }
-                catch(IOException ioEx) {
-
-                }
+            if (workbook != null) {
+                workbook.close();
+            }
+            if (fos != null) {
+                fos.close();
             }
         }
     }
@@ -503,8 +500,8 @@ public class InCellLists {
      *
      * @param args the command line arguments.
      */
-    public static void main(String[] args) {
-        new InCellLists().demonstrateMethodCalls("C:/temp/Latest In Cell List.xls");
+    public static void main(String[] args) throws IOException {
+        new InCellLists().demonstrateMethodCalls("Latest In Cell List.xls");
     }
 
     /**

Modified: poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/Outlines.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/Outlines.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/Outlines.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/Outlines.java Tue Oct  6 00:04:12 2015
@@ -17,53 +17,55 @@
 
 package org.apache.poi.hssf.usermodel.examples;
 
-import org.apache.poi.hssf.usermodel.HSSFSheet;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.usermodel.HSSFRow;
-import org.apache.poi.hssf.usermodel.HSSFCell;
-
+import java.io.Closeable;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
 
 /**
  * Creates outlines.
- * 
- * @author Glen Stampoultzis (glens at apache.org)
  */
-public class Outlines {
-     public static void main(String[] args) throws IOException {
-        createCase1( "outline1.xls" );
-        System.out.println( "outline1.xls written.  Two expanded groups." );
-        createCase2( "outline2.xls" );
-        System.out.println( "outline2.xls written.  Two groups.  Inner group collapsed." );
-        createCase3( "outline3.xls" );
-        System.out.println( "outline3.xls written.  Two groups.  Both collapsed." );
-        createCase4( "outline4.xls" );
-        System.out.println( "outline4.xls written.  Two groups.  Collapsed then inner group expanded." );
-        createCase5( "outline5.xls" );
-        System.out.println( "outline5.xls written.  Two groups.  Collapsed then reexpanded." );
-        createCase6( "outline6.xls" );
-        System.out.println( "outline6.xls written.  Two groups with matching end points.  Second group collapsed." );
-        createCase7( "outline7.xls" );
-        System.out.println( "outline7.xls written.  Row outlines." );
-        createCase8( "outline8.xls" );
-        System.out.println( "outline8.xls written.  Row outlines.  Inner group collapsed." );
-        createCase9( "outline9.xls" );
-        System.out.println( "outline9.xls written.  Row outlines.  Both collapsed." );
-        createCase10( "outline10.xls" );
-        System.out.println( "outline10.xls written.  Row outlines.  Collapsed then inner group expanded." );
-        createCase11( "outline11.xls" );
-        System.out.println( "outline11.xls written.  Row outlines.  Collapsed then expanded." );
-        createCase12( "outline12.xls" );
-        System.out.println( "outline12.xls written.  Row outlines.  Two row groups with matching end points.  Second group collapsed." );
-        createCase13( "outline13.xls" );
-        System.out.println( "outline13.xls written.  Mixed bag." );
-    }
-
-    private static void createCase1(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
+public class Outlines implements Closeable {
+    public static void main(String[] args)
+    throws IOException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
+        POILogger LOGGER = POILogFactory.getLogger(Outlines.class);
+        for (int i=1; i<=13; i++) {
+            Outlines o = new Outlines();
+            try {
+                String log = (String)Outlines.class.getDeclaredMethod("test"+i).invoke(o);
+                String filename = "outline"+i+".xls";
+                o.writeOut(filename);
+                LOGGER.log(POILogger.INFO, filename+" written. "+log);
+            } finally {
+                o.close();
+            }
+        }
+    }
+
+    private final HSSFWorkbook wb = new HSSFWorkbook();
+    private final HSSFSheet sheet1 = wb.createSheet("new sheet");
 
+    public void writeOut(String filename) throws IOException {
+        FileOutputStream fileOut = new FileOutputStream(filename);
+        try {
+            wb.write(fileOut);
+        } finally {
+            fileOut.close();
+        }
+    }
+    
+    public void close() throws IOException {
+        wb.close();
+    }
+
+    public String test1() {
         sheet1.groupColumn(4, 7);
 
         for (int row = 0; row < 200; row++) {
@@ -73,59 +75,35 @@ public class Outlines {
                 c.setCellValue(column);
             }
         }
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Two expanded groups.";
     }
 
-    private static void createCase2(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test2() {
         sheet1.groupColumn(2, 10);
         sheet1.groupColumn(4, 7);
         sheet1.setColumnGroupCollapsed(4, true);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Two groups.  Inner group collapsed.";
     }
 
-    private static void createCase3(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test3() {
         sheet1.groupColumn(2, 10);
         sheet1.groupColumn(4, 7);
         sheet1.setColumnGroupCollapsed(4, true);
         sheet1.setColumnGroupCollapsed(2, true);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Two groups.  Both collapsed.";
     }
 
-    private static void createCase4(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test4() {
         sheet1.groupColumn(2, 10);
         sheet1.groupColumn(4, 7);
         sheet1.setColumnGroupCollapsed(4, true);
         sheet1.setColumnGroupCollapsed(2, true);
 
         sheet1.setColumnGroupCollapsed(4, false);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Two groups.  Collapsed then inner group expanded.";
     }
 
-    private static void createCase5(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test5() {
         sheet1.groupColumn(2, 10);
         sheet1.groupColumn(4, 7);
         sheet1.setColumnGroupCollapsed(4, true);
@@ -133,117 +111,69 @@ public class Outlines {
 
         sheet1.setColumnGroupCollapsed(4, false);
         sheet1.setColumnGroupCollapsed(3, false);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Two groups.  Collapsed then reexpanded.";
     }
 
-    private static void createCase6(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test6() {
         sheet1.groupColumn(2, 10);
         sheet1.groupColumn(4, 10);
         sheet1.setColumnGroupCollapsed(4, true);
         sheet1.setColumnGroupCollapsed(2, true);
 
         sheet1.setColumnGroupCollapsed(3, false);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Two groups with matching end points.  Second group collapsed.";
     }
 
-    private static void createCase7(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test7() {
         sheet1.groupRow(5, 14);
         sheet1.groupRow(7, 10);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Row outlines.";
     }
 
-    private static void createCase8(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test8() {
         sheet1.groupRow(5, 14);
         sheet1.groupRow(7, 10);
         sheet1.setRowGroupCollapsed(7, true);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Row outlines.  Inner group collapsed.";
     }
 
-    private static void createCase9(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test9() {
         sheet1.groupRow(5, 14);
         sheet1.groupRow(7, 10);
         sheet1.setRowGroupCollapsed(7, true);
         sheet1.setRowGroupCollapsed(5, true);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Row outlines.  Both collapsed.";
     }
 
-    private static void createCase10(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test10() {
         sheet1.groupRow(5, 14);
         sheet1.groupRow(7, 10);
         sheet1.setRowGroupCollapsed(7, true);
         sheet1.setRowGroupCollapsed(5, true);
         sheet1.setRowGroupCollapsed(8, false);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Row outlines.  Collapsed then inner group expanded.";
     }
 
-    private static void createCase11(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test11() {
         sheet1.groupRow(5, 14);
         sheet1.groupRow(7, 10);
         sheet1.setRowGroupCollapsed(7, true);
         sheet1.setRowGroupCollapsed(5, true);
         sheet1.setRowGroupCollapsed(8, false);
         sheet1.setRowGroupCollapsed(14, false);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Row outlines.  Collapsed then expanded.";
     }
 
-    private static void createCase12(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test12() {
         sheet1.groupRow(5, 14);
         sheet1.groupRow(7, 14);
         sheet1.setRowGroupCollapsed(7, true);
         sheet1.setRowGroupCollapsed(5, true);
         sheet1.setRowGroupCollapsed(6, false);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Row outlines.  Two row groups with matching end points.  Second group collapsed.";
     }
 
-    private static void createCase13(String filename) throws IOException {
-        HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet1 = wb.createSheet("new sheet");
-
+    public String test13() {
         sheet1.groupRow(5, 14);
         sheet1.groupRow(7, 14);
         sheet1.groupRow(16, 19);
@@ -251,9 +181,6 @@ public class Outlines {
         sheet1.groupColumn(4, 7);
         sheet1.groupColumn(9, 12);
         sheet1.groupColumn(10, 11);
-
-        FileOutputStream fileOut = new FileOutputStream(filename);
-        wb.write(fileOut);
-        fileOut.close();
+        return "Mixed bag.";
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/hwpf/Word2Forrest.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hwpf/Word2Forrest.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hwpf/Word2Forrest.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hwpf/Word2Forrest.java Tue Oct  6 00:04:12 2015
@@ -20,6 +20,7 @@ package org.apache.poi.hwpf;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
@@ -215,19 +216,14 @@ public final class Word2Forrest
     }
 
 
-  public static void main(String[] args)
-  {
-    try
-    {
-      OutputStream out = new FileOutputStream("c:\\test.xml");
-
-      new Word2Forrest(new HWPFDocument(new FileInputStream(args[0])), out);
-      out.close();
-    }
-    catch (Exception t)
-    {
-      t.printStackTrace();
+    public static void main(String[] args) throws IOException {
+        InputStream is = new FileInputStream(args[0]);
+        OutputStream out = new FileOutputStream("test.xml");
+        try {
+            new Word2Forrest(new HWPFDocument(is), out);
+        } finally {
+            out.close();
+            is.close();
+        }
     }
-
-  }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xssf/streaming/examples/Outlining.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/streaming/examples/Outlining.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xssf/streaming/examples/Outlining.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xssf/streaming/examples/Outlining.java Tue Oct  6 00:04:12 2015
@@ -18,20 +18,21 @@
 package org.apache.poi.xssf.streaming.examples;
 
 import java.io.FileOutputStream;
+import java.io.IOException;
 
 import org.apache.poi.xssf.streaming.SXSSFSheet;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 
 public class Outlining {
 
-	public static void main(String[] args) throws Exception {
+	public static void main(String[] args) throws IOException {
 		Outlining o = new Outlining();
 		o.collapseRow();
 	}
 
-	private void collapseRow() throws Exception {
+	private void collapseRow() throws IOException {
 		SXSSFWorkbook wb2 = new SXSSFWorkbook(100);
-		SXSSFSheet sheet2 = (SXSSFSheet) wb2.createSheet("new sheet");
+		SXSSFSheet sheet2 = wb2.createSheet("new sheet");
 
 		int rowCount = 20;
 		for (int i = 0; i < rowCount; i++) {
@@ -44,8 +45,12 @@ public class Outlining {
 		sheet2.setRowGroupCollapsed(4, true);
 
 		FileOutputStream fileOut = new FileOutputStream("outlining_collapsed.xlsx");
-		wb2.write(fileOut);
-		fileOut.close();
-		wb2.dispose();
+		try {
+		    wb2.write(fileOut);
+		} finally {
+    		fileOut.close();
+    		wb2.dispose();
+    		wb2.close();
+		}
 	}
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java Tue Oct  6 00:04:12 2015
@@ -50,7 +50,7 @@ public final class TabIdRecord extends S
      * @param array of tab id's {0,1,2}
      */
     public void setTabIdArray(short[] array) {
-        _tabids = array;
+        _tabids = array.clone();
     }
 
     public String toString() {

Modified: poi/trunk/src/java/org/apache/poi/poifs/crypt/CipherAlgorithm.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/crypt/CipherAlgorithm.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/crypt/CipherAlgorithm.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/crypt/CipherAlgorithm.java Tue Oct  6 00:04:12 2015
@@ -53,7 +53,7 @@ public enum CipherAlgorithm {
         this.jceId = jceId;
         this.ecmaId = ecmaId;
         this.defaultKeySize = defaultKeySize;
-        this.allowedKeySize = allowedKeySize;
+        this.allowedKeySize = allowedKeySize.clone();
         this.blockSize = blockSize;
         this.encryptedVerifierHashLength = encryptedVerifierHashLength;
         this.xmlId = xmlId;

Modified: poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java Tue Oct  6 00:04:12 2015
@@ -41,7 +41,7 @@ abstract class BlockListImpl implements
      */
     protected void setBlocks(final ListManagedBlock [] blocks)
     {
-        _blocks = blocks;
+        _blocks = blocks.clone();
     }
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java Tue Oct  6 00:04:12 2015
@@ -365,11 +365,11 @@ public class DrawTextParagraph implement
         Double leftMargin = paragraph.getLeftMargin();
         if (leftMargin == null) {
             // if the marL attribute is omitted, then a value of 347663 is implied
-            leftMargin = Units.toPoints(347663*(indentLevel+1));
+            leftMargin = Units.toPoints(347663L*(indentLevel+1));
         }
         Double indent = paragraph.getIndent();
         if (indent == null) {
-            indent = Units.toPoints(347663*indentLevel);
+            indent = Units.toPoints(347663L*indentLevel);
         }
         Double rightMargin = paragraph.getRightMargin();
         if (rightMargin == null) {

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java Tue Oct  6 00:04:12 2015
@@ -60,7 +60,7 @@ public final class ArrayPtg extends Ptg
 		_reserved2Byte = reserved2;
 		_nColumns = nColumns;
 		_nRows = nRows;
-		_arrayValues = arrayValues;
+		_arrayValues = arrayValues.clone();
 	}
 	/**
 	 * @param values2d array values arranged in rows

Modified: poi/trunk/src/java/org/apache/poi/ss/util/SSCellRange.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/SSCellRange.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/util/SSCellRange.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/util/SSCellRange.java Tue Oct  6 00:04:12 2015
@@ -117,7 +117,7 @@ public final class SSCellRange<K extends
 		private int _index;
 
 		public ArrayIterator(D[] array) {
-			_array = array;
+			_array = array.clone();
 			_index = 0;
 		}
 		public boolean hasNext() {

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetUpdateArrayFormulas.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetUpdateArrayFormulas.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetUpdateArrayFormulas.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetUpdateArrayFormulas.java Tue Oct  6 00:04:12 2015
@@ -17,14 +17,23 @@
 
 package org.apache.poi.xssf.usermodel;
 
-import junit.framework.AssertionFailedError;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+
+import java.io.IOException;
 
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.BaseTestSheetUpdateArrayFormulas;
+import org.apache.poi.ss.usermodel.CellRange;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.XSSFITestDataProvider;
+import org.junit.Test;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellFormula;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellFormulaType;
+
+import junit.framework.AssertionFailedError;
 /**
  * Test array formulas in XSSF
  *
@@ -39,8 +48,8 @@ public final class TestXSSFSheetUpdateAr
 
     // Test methods common with HSSF are in superclass
     // Local methods here test XSSF-specific details of updating array formulas
-
-    public void testXSSFSetArrayFormula_singleCell() {
+    @Test
+    public void testXSSFSetArrayFormula_singleCell() throws IOException {
         CellRange<XSSFCell> cells;
 
         XSSFWorkbook workbook = new XSSFWorkbook();
@@ -58,9 +67,12 @@ public final class TestXSSFSheetUpdateAr
         //retrieve the range and check it is the same
         assertEquals(range.formatAsString(), firstCell.getArrayFormulaRange().formatAsString());
         confirmArrayFormulaCell(firstCell, "C3", formula1, "C3");
+        
+        workbook.close();
     }
 
-    public void testXSSFSetArrayFormula_multiCell() {
+    @Test
+    public void testXSSFSetArrayFormula_multiCell() throws IOException {
         CellRange<XSSFCell> cells;
 
         String formula2 = "456";
@@ -84,6 +96,7 @@ public final class TestXSSFSheetUpdateAr
         confirmArrayFormulaCell(cells.getCell(2, 0), "C6");
 
         assertSame(firstCell, sheet.getFirstCellInArrayFormula(firstCell));
+        workbook.close();
     }
 
     private static void confirmArrayFormulaCell(XSSFCell c, String cellRef) {

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java Tue Oct  6 00:04:12 2015
@@ -31,7 +31,6 @@ import org.apache.poi.hslf.exceptions.Ol
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.DocumentEntry;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
@@ -112,13 +111,7 @@ public class CurrentUserAtom
 		isEncrypted = false;
 	}
 
-	/** 
-	 * Find the Current User in the filesystem, and create from that
-	 * @deprecated Use {@link #CurrentUserAtom(DirectoryNode)} instead
-	 */
-	public CurrentUserAtom(POIFSFileSystem fs) throws IOException {
-		this(fs.getRoot());
-	}
+
 	/** 
 	 * Find the Current User in the filesystem, and create from that
 	 */
@@ -162,14 +155,6 @@ public class CurrentUserAtom
 		init();
 	}
 
-	/** 
-	 * Create things from the bytes
-	 */
-	public CurrentUserAtom(byte[] b) {
-		_contents = b;
-		init();
-	}
-
 	/**
 	 * Actually do the creation from a block of bytes
 	 */

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextBytesAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextBytesAtom.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextBytesAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextBytesAtom.java Tue Oct  6 00:04:12 2015
@@ -48,7 +48,7 @@ public final class TextBytesAtom extends
 	/** Updates the text in the Atom. Must be 8 bit ascii */
 	public void setText(byte[] b) {
 		// Set the text
-		_text = b;
+		_text = b.clone();
 
 		// Update the size (header bytes 5-8)
 		LittleEndian.putInt(_header,4,_text.length);

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java Tue Oct  6 00:04:12 2015
@@ -17,6 +17,7 @@
 
 package org.apache.poi.hslf.record;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
@@ -44,47 +45,48 @@ public final class TestCurrentUserAtom {
 
 	@Test
 	public void readNormal() throws Exception {
-		POIFSFileSystem fs = new POIFSFileSystem(
-				_slTests.openResourceAsStream(normalFile)
-		);
+		POIFSFileSystem fs = new POIFSFileSystem(_slTests.getFile(normalFile));
 
-		CurrentUserAtom cu = new CurrentUserAtom(fs);
+		CurrentUserAtom cu = new CurrentUserAtom(fs.getRoot());
+		fs.close();
 
 		// Check the contents
 		assertEquals("Hogwarts", cu.getLastEditUsername());
 		assertEquals(0x2942, cu.getCurrentEditOffset());
 
 		// Round trip
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
-		cu.writeOut(baos);
-
-		CurrentUserAtom cu2 = new CurrentUserAtom(baos.toByteArray());
+		POIFSFileSystem poifs = new POIFSFileSystem();
+		cu.writeToFS(poifs);
+		
+		CurrentUserAtom cu2 = new CurrentUserAtom(poifs.getRoot());
 		assertEquals("Hogwarts", cu2.getLastEditUsername());
 		assertEquals(0x2942, cu2.getCurrentEditOffset());
+		
+		poifs.close();
 	}
 
 	@Test(expected = EncryptedPowerPointFileException.class)
 	public void readEnc() throws Exception {
-		POIFSFileSystem fs = new POIFSFileSystem(
-				_slTests.openResourceAsStream(encFile)
-		);
+		POIFSFileSystem fs = new POIFSFileSystem(_slTests.getFile(encFile));
 
-		new CurrentUserAtom(fs);
+		new CurrentUserAtom(fs.getRoot());
 		assertTrue(true); // not yet failed
 		
 		new HSLFSlideShowImpl(fs);
+		
+		fs.close();
 	}
 
 	@Test
 	public void writeNormal() throws Exception {
 		// Get raw contents from a known file
-		POIFSFileSystem fs = new POIFSFileSystem(
-				_slTests.openResourceAsStream(normalFile)
-		);
+		POIFSFileSystem fs = new POIFSFileSystem(_slTests.getFile(normalFile));
 		DocumentEntry docProps = (DocumentEntry)fs.getRoot().getEntry("Current User");
 		byte[] contents = new byte[docProps.getSize()];
 		InputStream in = fs.getRoot().createDocumentInputStream("Current User");
 		in.read(contents);
+		in.close();
+		fs.close();
 
 		// Now build up a new one
 		CurrentUserAtom cu = new CurrentUserAtom();
@@ -96,9 +98,6 @@ public final class TestCurrentUserAtom {
 		cu.writeOut(baos);
 		byte[] out = baos.toByteArray();
 
-		assertEquals(contents.length, out.length);
-		for(int i=0; i<contents.length; i++) {
-			assertEquals("Byte " + i, contents[i], out[i]);
-		}
+		assertArrayEquals(contents, out);
 	}
 }

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java Tue Oct  6 00:04:12 2015
@@ -17,7 +17,12 @@
 
 package org.apache.poi.hssf.usermodel;
 
-import junit.framework.AssertionFailedError;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
 
 import org.apache.poi.hssf.HSSFITestDataProvider;
 import org.apache.poi.hssf.record.ArrayRecord;
@@ -27,8 +32,10 @@ import org.apache.poi.hssf.record.aggreg
 import org.apache.poi.hssf.record.aggregates.RowRecordsAggregate;
 import org.apache.poi.hssf.record.aggregates.SharedValueManager;
 import org.apache.poi.hssf.record.aggregates.TestSharedValueManager;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.BaseTestSheetUpdateArrayFormulas;
+import org.apache.poi.ss.usermodel.CellRange;
 import org.apache.poi.ss.util.CellRangeAddress;
+import org.junit.Test;
 
 /**
  * Test array formulas in HSSF
@@ -44,8 +51,8 @@ public final class TestHSSFSheetUpdateAr
 
     // Test methods common with XSSF are in superclass
     // Local methods here test HSSF-specific details of updating array formulas
-
-    public void testHSSFSetArrayFormula_singleCell() {
+    @Test
+    public void testHSSFSetArrayFormula_singleCell() throws IOException {
         HSSFWorkbook workbook = new HSSFWorkbook();
         HSSFSheet sheet = workbook.createSheet("Sheet1");
 
@@ -65,12 +72,15 @@ public final class TestHSSFSheetUpdateAr
         FormulaRecordAggregate agg = (FormulaRecordAggregate)cell.getCellValueRecord();
         assertEquals(range.formatAsString(), agg.getArrayFormulaRange().formatAsString());
         assertTrue(agg.isPartOfArrayFormula());
+        
+        workbook.close();
     }
 
     /**
      * Makes sure the internal state of HSSFSheet is consistent after removing array formulas
      */
-    public void testAddRemoveArrayFormulas_recordUpdates() {
+    @Test
+    public void testAddRemoveArrayFormulas_recordUpdates() throws IOException {
         HSSFWorkbook wb = new HSSFWorkbook();
         HSSFSheet s = wb.createSheet("Sheet1");
 
@@ -96,14 +106,16 @@ public final class TestHSSFSheetUpdateAr
         RowRecordsAggregate rra = s.getSheet().getRowsAggregate();
         SharedValueManager svm = TestSharedValueManager.extractFromRRA(rra);
         if (svm.getArrayRecord(4, 1) != null) {
-            throw new AssertionFailedError("Array record was not cleaned up properly.");
+            fail("Array record was not cleaned up properly.");
         }
+        
+        wb.close();
     }
 
     private static void confirmRecordClass(Record[] recs, int index, Class<? extends Record> cls) {
         if (recs.length <= index) {
-            throw new AssertionFailedError("Expected (" + cls.getName() + ") at index "
-                    + index + " but array length is " + recs.length + ".");
+            fail("Expected (" + cls.getName() + ") at index "
+                + index + " but array length is " + recs.length + ".");
         }
         assertEquals(cls, recs[index].getClass());
     }

Modified: poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java?rev=1706937&r1=1706936&r2=1706937&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java Tue Oct  6 00:04:12 2015
@@ -18,12 +18,21 @@
 package org.apache.poi.ss.usermodel;
 
 import static org.junit.Assert.assertArrayEquals;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
 
 import org.apache.poi.ss.ITestDataProvider;
 import org.apache.poi.ss.formula.FormulaParseException;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.CellReference;
+import org.junit.Test;
 
 /**
  * Common superclass for testing usermodel API for array formulas.<br/>
@@ -32,14 +41,15 @@ import org.apache.poi.ss.util.CellRefere
  * @author Yegor Kozlov
  * @author Josh Micich
  */
-public abstract class BaseTestSheetUpdateArrayFormulas extends TestCase {
+public abstract class BaseTestSheetUpdateArrayFormulas {
     protected final ITestDataProvider _testDataProvider;
 
     protected BaseTestSheetUpdateArrayFormulas(ITestDataProvider testDataProvider) {
         _testDataProvider = testDataProvider;
     }
 
-    public final void testAutoCreateOtherCells() {
+    @Test
+    public final void testAutoCreateOtherCells() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet("Sheet1");
 
@@ -55,11 +65,14 @@ public abstract class BaseTestSheetUpdat
         assertNotNull(row2);
         assertEquals(formula, row2.getCell(0).getCellFormula());
         assertEquals(formula, row2.getCell(1).getCellFormula());
+        
+        workbook.close();
     }
     /**
      *  Set single-cell array formula
      */
-    public final void testSetArrayFormula_singleCell() {
+    @Test
+    public final void testSetArrayFormula_singleCell() throws IOException {
         Cell[] cells;
 
         Workbook workbook = _testDataProvider.createWorkbook();
@@ -88,12 +101,15 @@ public abstract class BaseTestSheetUpdat
         assertEquals(range.formatAsString(), cell.getArrayFormulaRange().formatAsString());
         //check the formula
         assertEquals("SUM(C11:C12*D11:D12)", cell.getCellFormula());
+        
+        workbook.close();
     }
 
     /**
      * Set multi-cell array formula
      */
-    public final void testSetArrayFormula_multiCell() {
+    @Test
+    public final void testSetArrayFormula_multiCell() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -119,13 +135,16 @@ public abstract class BaseTestSheetUpdat
             //retrieve the range and check it is the same
             assertEquals(range.formatAsString(), acell.getArrayFormulaRange().formatAsString());
         }
+        
+        workbook.close();
     }
 
     /**
      * Passing an incorrect formula to sheet.setArrayFormula
      *  should throw FormulaParseException
      */
-    public final void testSetArrayFormula_incorrectFormula() {
+    @Test
+    public final void testSetArrayFormula_incorrectFormula() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -136,13 +155,16 @@ public abstract class BaseTestSheetUpdat
         } catch (FormulaParseException e){
             //expected exception
         }
+        
+        workbook.close();
     }
 
     /**
      * Calls of cell.getArrayFormulaRange and sheet.removeArrayFormula
      * on a not-array-formula cell throw IllegalStateException
      */
-    public final void testArrayFormulas_illegalCalls() {
+    @Test
+    public final void testArrayFormulas_illegalCalls() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -161,12 +183,15 @@ public abstract class BaseTestSheetUpdat
         } catch (IllegalArgumentException e){
             assertEquals("Cell A1 is not part of an array formula.", e.getMessage());
         }
+        
+        workbook.close();
     }
 
     /**
      * create and remove array formulas
      */
-    public final void testRemoveArrayFormula() {
+    @Test
+    public final void testRemoveArrayFormula() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -196,28 +221,32 @@ public abstract class BaseTestSheetUpdat
                 assertEquals("Cell "+ref+" is not part of an array formula.", e.getMessage());
             }
         }
+        
+        workbook.close();
     }
 
     /**
      * Test that when reading a workbook from input stream, array formulas are recognized
      */
-    public final void testReadArrayFormula() {
+    @Test
+    public final void testReadArrayFormula() throws IOException {
         Cell[] cells;
 
-        Workbook workbook = _testDataProvider.createWorkbook();
-        Sheet sheet1 = workbook.createSheet();
+        Workbook workbook1 = _testDataProvider.createWorkbook();
+        Sheet sheet1 = workbook1.createSheet();
         cells = sheet1.setArrayFormula("SUM(A1:A3*B1:B3)", CellRangeAddress.valueOf("C4:C6")).getFlattenedCells();
         assertEquals(3, cells.length);
 
         cells = sheet1.setArrayFormula("MAX(A1:A3*B1:B3)", CellRangeAddress.valueOf("A4:A6")).getFlattenedCells();
         assertEquals(3, cells.length);
 
-        Sheet sheet2 = workbook.createSheet();
+        Sheet sheet2 = workbook1.createSheet();
         cells = sheet2.setArrayFormula("MIN(A1:A3*B1:B3)", CellRangeAddress.valueOf("D2:D4")).getFlattenedCells();
         assertEquals(3, cells.length);
 
-        workbook = _testDataProvider.writeOutAndReadBack(workbook);
-        sheet1 = workbook.getSheetAt(0);
+        Workbook workbook2 = _testDataProvider.writeOutAndReadBack(workbook1);
+        workbook1.close();
+        sheet1 = workbook2.getSheetAt(0);
         for(int rownum=3; rownum <= 5; rownum++) {
             Cell cell1 = sheet1.getRow(rownum).getCell(2);
             assertTrue( cell1.isPartOfArrayFormulaGroup());
@@ -226,17 +255,20 @@ public abstract class BaseTestSheetUpdat
             assertTrue( cell2.isPartOfArrayFormulaGroup());
         }
 
-        sheet2 = workbook.getSheetAt(1);
+        sheet2 = workbook2.getSheetAt(1);
         for(int rownum=1; rownum <= 3; rownum++) {
             Cell cell1 = sheet2.getRow(rownum).getCell(3);
             assertTrue( cell1.isPartOfArrayFormulaGroup());
         }
+        
+        workbook2.close();
     }
 
     /**
      * Test that we can set pre-calculated formula result for array formulas
      */
-    public void testModifyArrayCells_setFormulaResult(){
+    @Test
+    public void testModifyArrayCells_setFormulaResult() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -245,23 +277,25 @@ public abstract class BaseTestSheetUpdat
                 sheet.setArrayFormula("SUM(A4:A6,B4:B6)", CellRangeAddress.valueOf("B5"));
         Cell scell = srange.getTopLeftCell();
         assertEquals(Cell.CELL_TYPE_FORMULA, scell.getCellType());
-        assertEquals(0.0, scell.getNumericCellValue());
+        assertEquals(0.0, scell.getNumericCellValue(), 0);
         scell.setCellValue(1.1);
-        assertEquals(1.1, scell.getNumericCellValue());
+        assertEquals(1.1, scell.getNumericCellValue(), 0);
 
         //multi-cell array formula
         CellRange<? extends Cell> mrange =
                 sheet.setArrayFormula("A1:A3*B1:B3", CellRangeAddress.valueOf("C1:C3"));
         for(Cell mcell : mrange){
             assertEquals(Cell.CELL_TYPE_FORMULA, mcell.getCellType());
-            assertEquals(0.0, mcell.getNumericCellValue());
+            assertEquals(0.0, mcell.getNumericCellValue(), 0);
             double fmlaResult = 1.2;
             mcell.setCellValue(fmlaResult);
-            assertEquals(fmlaResult, mcell.getNumericCellValue());
+            assertEquals(fmlaResult, mcell.getNumericCellValue(), 0);
         }
+        workbook.close();
     }
 
-    public void testModifyArrayCells_setCellType(){
+    @Test
+    public void testModifyArrayCells_setCellType() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -271,7 +305,7 @@ public abstract class BaseTestSheetUpdat
                 sheet.setArrayFormula("SUM(A4:A6,B4:B6)", CellRangeAddress.valueOf("B5"));
         Cell scell = srange.getTopLeftCell();
         assertEquals(Cell.CELL_TYPE_FORMULA, scell.getCellType());
-        assertEquals(0.0, scell.getNumericCellValue());
+        assertEquals(0.0, scell.getNumericCellValue(), 0);
         scell.setCellType(Cell.CELL_TYPE_STRING);
         assertEquals(Cell.CELL_TYPE_STRING, scell.getCellType());
         scell.setCellValue("string cell");
@@ -295,9 +329,11 @@ public abstract class BaseTestSheetUpdat
             assertEquals(Cell.CELL_TYPE_FORMULA, mcell.getCellType());
             assertTrue(mcell.isPartOfArrayFormulaGroup());
         }
+        workbook.close();
     }
 
-    public void testModifyArrayCells_setCellFormula(){
+    @Test
+    public void testModifyArrayCells_setCellFormula() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -313,9 +349,9 @@ public abstract class BaseTestSheetUpdat
         assertFalse(scell.isPartOfArrayFormulaGroup());
         assertEquals(Cell.CELL_TYPE_FORMULA, scell.getCellType());
         //check that setting formula result works
-        assertEquals(0.0, scell.getNumericCellValue());
+        assertEquals(0.0, scell.getNumericCellValue(), 0);
         scell.setCellValue(33.0);
-        assertEquals(33.0, scell.getNumericCellValue());
+        assertEquals(33.0, scell.getNumericCellValue(), 0);
 
         //multi-cell array formula
         CellRange<? extends Cell> mrange =
@@ -336,9 +372,11 @@ public abstract class BaseTestSheetUpdat
             assertEquals("A1:A3*B1:B3", mcell.getCellFormula());
             assertTrue(mcell.isPartOfArrayFormulaGroup());
         }
+        workbook.close();
     }
 
-    public void testModifyArrayCells_removeCell(){
+    @Test
+    public void testModifyArrayCells_removeCell() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -378,9 +416,12 @@ public abstract class BaseTestSheetUpdat
             assertTrue(mcell.isPartOfArrayFormulaGroup());
             assertEquals(Cell.CELL_TYPE_FORMULA, mcell.getCellType());
         }
+        
+        workbook.close();
     }
 
-    public void testModifyArrayCells_removeRow(){
+    @Test
+    public void testModifyArrayCells_removeRow() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -411,8 +452,8 @@ public abstract class BaseTestSheetUpdat
                 sheet.removeRow(mrow);
                 fail("expected exception");
             } catch (IllegalStateException e){
-                String msg = "Row[rownum="+mrow.getRowNum()+"] contains cell(s) included in a multi-cell array formula. You cannot change part of an array.";
-                //assertEquals(msg, e.getMessage());
+                // String msg = "Row[rownum="+mrow.getRowNum()+"] contains cell(s) included in a multi-cell array formula. You cannot change part of an array.";
+                // assertEquals(msg, e.getMessage());
             }
             // a failed invocation of Row.removeCell leaves the row
             // in the state that it was in prior to the invocation
@@ -421,9 +462,12 @@ public abstract class BaseTestSheetUpdat
             assertTrue(mcell.isPartOfArrayFormulaGroup());
             assertEquals(Cell.CELL_TYPE_FORMULA, mcell.getCellType());
         }
+        
+        workbook.close();
     }
 
-    public void testModifyArrayCells_mergeCells(){
+    @Test
+    public void testModifyArrayCells_mergeCells() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
         assertEquals(0, sheet.getNumMergedRegions());
@@ -439,8 +483,7 @@ public abstract class BaseTestSheetUpdat
         assertEquals(1, sheet.getNumMergedRegions());
 
         //we cannot merge cells included in an array formula
-        CellRange<? extends Cell> mrange =
-                sheet.setArrayFormula("A1:A3*B1:B3", CellRangeAddress.valueOf("C1:C3"));
+        sheet.setArrayFormula("A1:A3*B1:B3", CellRangeAddress.valueOf("C1:C3"));
         CellRangeAddress cra = CellRangeAddress.valueOf("C1:C3");
         try {
             sheet.addMergedRegion(cra);
@@ -451,9 +494,11 @@ public abstract class BaseTestSheetUpdat
         }
         //the number of merged regions remains the same
         assertEquals(1, sheet.getNumMergedRegions());
+        workbook.close();
     }
 
-    public void testModifyArrayCells_shiftRows(){
+    @Test
+    public void testModifyArrayCells_shiftRows() throws IOException {
         Workbook workbook = _testDataProvider.createWorkbook();
         Sheet sheet = workbook.createSheet();
 
@@ -466,8 +511,7 @@ public abstract class BaseTestSheetUpdat
         sheet.shiftRows(0, 1, 1);
 
         //we cannot set individual formulas for cells included in an array formula
-        CellRange<? extends Cell> mrange =
-                sheet.setArrayFormula("A1:A3*B1:B3", CellRangeAddress.valueOf("C1:C3"));
+        sheet.setArrayFormula("A1:A3*B1:B3", CellRangeAddress.valueOf("C1:C3"));
 
         try {
             sheet.shiftRows(0, 0, 1);
@@ -491,5 +535,6 @@ public abstract class BaseTestSheetUpdat
         }
 
         */
+        workbook.close();
     }
 }



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