]> source.dussan.org Git - poi.git/commitdiff
More IntelliJ warnings fixes
authorDominik Stadler <centic@apache.org>
Sat, 23 Sep 2017 07:38:01 +0000 (07:38 +0000)
committerDominik Stadler <centic@apache.org>
Sat, 23 Sep 2017 07:38:01 +0000 (07:38 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1809370 13f79535-47bb-0310-9956-ffa450edef68

17 files changed:
src/examples/src/org/apache/poi/hpsf/examples/CopyCompare.java
src/examples/src/org/apache/poi/hpsf/examples/ModifyDocumentSummaryInformation.java
src/examples/src/org/apache/poi/hpsf/examples/ReadCustomPropertySets.java
src/examples/src/org/apache/poi/hpsf/examples/WriteAuthorAndTitle.java
src/examples/src/org/apache/poi/hssf/eventusermodel/examples/XLS2CSVmra.java
src/examples/src/org/apache/poi/hssf/usermodel/examples/BigExample.java
src/examples/src/org/apache/poi/hssf/usermodel/examples/InCellLists.java
src/examples/src/org/apache/poi/hssf/view/SVBorder.java
src/examples/src/org/apache/poi/poifs/poibrowser/DocumentDescriptorRenderer.java
src/examples/src/org/apache/poi/poifs/poibrowser/POIBrowser.java
src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java
src/examples/src/org/apache/poi/ss/examples/ConditionalFormats.java
src/examples/src/org/apache/poi/ss/examples/ToCSV.java
src/examples/src/org/apache/poi/ss/examples/html/ToHtml.java
src/examples/src/org/apache/poi/xssf/eventusermodel/examples/LoadPasswordProtectedXlsxStreaming.java
src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFImportFromXML.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java

index d2226f52b6e3e3f36ba8eb496f4e6dffb6974515..2fd17df0f1a8d5ce74799ae7b47a682153faa253 100644 (file)
@@ -169,7 +169,6 @@ public class CopyCompare
      * @exception NoPropertySetStreamException if the application tries to
      * create a property set from a POI document stream that is not a property
      * set stream.
-     * @throws UnsupportedEncodingException 
      * @exception IOException if any I/O exception occurs.
      */
     private static boolean equal(final DirectoryEntry d1,
@@ -233,7 +232,6 @@ public class CopyCompare
      * @exception NoPropertySetStreamException if the application tries to
      * create a property set from a POI document stream that is not a property
      * set stream.
-     * @throws UnsupportedEncodingException 
      * @exception IOException if any I/O exception occurs.
      */
     private static boolean equal(final DocumentEntry d1, final DocumentEntry d2,
@@ -355,8 +353,6 @@ public class CopyCompare
          * @param path The file's path in the POI filesystem.
          * @param name The file's name in the POI filesystem.
          * @param ps The property set to write.
-         * @throws WritingNotSupportedException 
-         * @throws IOException 
          */
         public void copy(final POIFSFileSystem poiFs,
                          final POIFSDocumentPath path,
@@ -378,7 +374,6 @@ public class CopyCompare
          * @param path The source document's path.
          * @param name The source document's name.
          * @param stream The stream containing the source document.
-         * @throws IOException 
          */
         public void copy(final POIFSFileSystem poiFs,
                          final POIFSDocumentPath path,
@@ -407,9 +402,6 @@ public class CopyCompare
 
         /**
          * <p>Writes the POI file system to a disk file.</p>
-         *
-         * @throws FileNotFoundException
-         * @throws IOException
          */
         public void close() throws FileNotFoundException, IOException {
             out = new FileOutputStream(dstName);
index 81a9594e79bede3ab733096ae3c7be27079bb81a..1e24660eb7f779c5ba99c3c5e51f4d570eb31966 100644 (file)
@@ -19,17 +19,12 @@ package org.apache.poi.hpsf.examples;
 
 import java.io.File;
 import java.io.FileNotFoundException;
-import java.io.IOException;
 import java.util.Date;
 
 import org.apache.poi.hpsf.CustomProperties;
 import org.apache.poi.hpsf.DocumentSummaryInformation;
-import org.apache.poi.hpsf.MarkUnsupportedException;
-import org.apache.poi.hpsf.NoPropertySetStreamException;
 import org.apache.poi.hpsf.PropertySetFactory;
 import org.apache.poi.hpsf.SummaryInformation;
-import org.apache.poi.hpsf.UnexpectedPropertySetTypeException;
-import org.apache.poi.hpsf.WritingNotSupportedException;
 import org.apache.poi.poifs.filesystem.DirectoryEntry;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
 
@@ -76,16 +71,8 @@ public class ModifyDocumentSummaryInformation {
      * <p>Main method - see class description.</p>
      *
      * @param args The command-line parameters.
-     * @throws IOException
-     * @throws MarkUnsupportedException
-     * @throws NoPropertySetStreamException
-     * @throws UnexpectedPropertySetTypeException
-     * @throws WritingNotSupportedException
      */
-    public static void main(final String[] args) throws IOException,
-            NoPropertySetStreamException, MarkUnsupportedException,
-            UnexpectedPropertySetTypeException, WritingNotSupportedException
-    {
+    public static void main(final String[] args) throws Exception {
         /* Read the name of the POI filesystem to modify from the command line.
          * For brevity to boundary check is performed on the command-line
          * arguments. */
index 9649842114b0cef89fbc46df093a952eb9e802b7..2212e81466522127f6ac9cd94f3946803b9d09d9 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hpsf.examples;
 
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.poi.hpsf.NoPropertySetStreamException;
@@ -64,7 +63,7 @@ public class ReadCustomPropertySets
         @Override
         public void processPOIFSReaderEvent(final POIFSReaderEvent event)
         {
-            PropertySet ps = null;
+            PropertySet ps;
             try
             {
                 ps = PropertySetFactory.create(event.getStream());
@@ -93,10 +92,8 @@ public class ReadCustomPropertySets
             /* Print the list of sections: */
             List<Section> sections = ps.getSections();
             int nr = 0;
-            for (Iterator<Section> i = sections.iterator(); i.hasNext();)
-            {
+            for (Section sec : sections) {
                 /* Print a single section: */
-                Section sec = i.next();
                 out("   Section " + nr++ + ":");
                 String s = hex(sec.getFormatID().getBytes());
                 s = s.substring(0, s.length() - 1);
@@ -108,15 +105,13 @@ public class ReadCustomPropertySets
 
                 /* Print the properties: */
                 Property[] properties = sec.getProperties();
-                for (int i2 = 0; i2 < properties.length; i2++)
-                {
+                for (Property p : properties) {
                     /* Print a single property: */
-                    Property p = properties[i2];
                     long id = p.getID();
                     long type = p.getType();
                     Object value = p.getValue();
                     out("      Property ID: " + id + ", type: " + type +
-                        ", value: " + value);
+                            ", value: " + value);
                 }
             }
         }
index b4a333160457e42accac404bebfb5a1b327d67b5..b674ec2d1ab2894810c80e788a91bfdf8c10f2ca 100644 (file)
@@ -193,7 +193,7 @@ public class WriteAuthorAndTitle
 
             /* According to the definition of the processPOIFSReaderEvent method
              * we cannot pass checked exceptions to the caller. The following
-             * lines check whether a checked exception occured and throws an
+             * lines check whether a checked exception occurred and throws an
              * unchecked exception. The message of that exception is that of
              * the underlying checked exception. */
             if (t != null) {
@@ -212,8 +212,6 @@ public class WriteAuthorAndTitle
          * @param name The original (and destination) stream's name.
          * @param si The property set. It should be a summary information
          * property set.
-         * @throws IOException 
-         * @throws WritingNotSupportedException 
          */
         public void editSI(final POIFSFileSystem poiFs,
                            final POIFSDocumentPath path,
@@ -257,8 +255,6 @@ public class WriteAuthorAndTitle
          * @param path The file's path in the POI filesystem.
          * @param name The file's name in the POI filesystem.
          * @param ps The property set to write.
-         * @throws WritingNotSupportedException 
-         * @throws IOException 
          */
         public void copy(final POIFSFileSystem poiFs,
                          final POIFSDocumentPath path,
@@ -281,7 +277,6 @@ public class WriteAuthorAndTitle
          * @param path The source document's path.
          * @param name The source document's name.
          * @param stream The stream containing the source document.
-         * @throws IOException 
          */
         public void copy(final POIFSFileSystem poiFs,
                          final POIFSDocumentPath path,
@@ -303,9 +298,6 @@ public class WriteAuthorAndTitle
 
         /**
          * <p>Writes the POI file system to a disk file.</p>
-         *
-         * @throws FileNotFoundException
-         * @throws IOException
          */
         public void close() throws FileNotFoundException, IOException
         {
index 75a606451232f8fb1c0de088cd1ba7c4ae623f36..88e2ae95d8aaf7cb4e228949bf106df35b94929b 100644 (file)
@@ -99,8 +99,6 @@ public class XLS2CSVmra implements HSSFListener {
         * Creates a new XLS -> CSV converter
         * @param filename The file to process
         * @param minColumns The minimum number of columns to output, or -1 for no minimum
-        * @throws IOException
-        * @throws FileNotFoundException
         */
        public XLS2CSVmra(String filename, int minColumns) throws IOException, FileNotFoundException {
                this(
index 4804973b4a26e5f94a890c256534c48c4422d9e3..d00bd9c87c606c195f22c4e7f8be0f34d861717a 100644 (file)
@@ -43,9 +43,9 @@ public class BigExample {
             // create a new sheet
             HSSFSheet s = wb.createSheet();
             // declare a row object reference
-            HSSFRow r = null;
+            HSSFRow r;
             // declare a cell object reference
-            HSSFCell c = null;
+            HSSFCell c;
             // create 3 cell styles
             HSSFCellStyle cs = wb.createCellStyle();
             HSSFCellStyle cs2 = wb.createCellStyle();
@@ -69,9 +69,9 @@ public class BigExample {
             //make it bold
             f2.setBold(true);
 
-            //set cell stlye
+            //set cell style
             cs.setFont(f);
-            //set the cell format see HSSFDataFromat for a full list
+            //set the cell format see HSSFDataFormat for a full list
             cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)"));
 
             //set a thin border
index 4850e368a5bbc06d6cf959dbfd457197204ef63b..315481b2e263b4538d82746114085b0ec73404d6 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.poi.hssf.usermodel.examples;
 
 import java.io.File;
 import java.io.FileOutputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
 
index bb19bff82ef8fcc51cfa0cafaf59ce62d559bdbe..840a85e5d901b806daafcf3d2d7125d6e0e35475 100644 (file)
@@ -498,13 +498,13 @@ public void paintBorder(Component c, Graphics g, int x, int y, int width,
     *  @param y the y origin of the line
     *  @param thickness the thickness of the line
     *  @param horizontal or vertical (true for horizontal)
-    *  @param right/bottom or left/top thickness (true for right or top),
+    *  @param rightBottom or left/top thickness (true for right or top),
     *         if true then the x or y origin will be incremented to provide
     *         thickness, if false, they'll be decremented.  For vertical
     *         borders, x is incremented or decremented, for horizontal its y.
     *         Just set to true for north and west, and false for east and
     *         south.
-    *  @returns length - returns the length of the line.
+    *  @return length - returns the length of the line.
     */
    private int drawDashDotDot(Graphics g,int x, int y, int thickness,
                               boolean horizontal,
@@ -529,7 +529,7 @@ public void paintBorder(Component c, Graphics g, int x, int y, int width,
    }
 
    /**
-    * @returns the line thickness for a border based on border type
+    * @return the line thickness for a border based on border type
     */
    private int getThickness(BorderStyle thickness) {
        switch (thickness) {
index de1204e77d4d53d11699784e0e71681437488fd9..f3f805c9f324d56f1ad48b2253ffb6ed72cff468 100644 (file)
@@ -57,23 +57,16 @@ public class DocumentDescriptorRenderer extends DefaultTreeCellRenderer
     /**
      * <p>Renders {@link DocumentDescriptor} as a string.</p>
      */
-    protected String renderAsString(final DocumentDescriptor d)
-    {
-        final StringBuilder b = new StringBuilder();
-        b.append("Name: ");
-        b.append(d.name);
-        b.append(" ");
-        b.append(HexDump.toHex(d.name));
-        b.append("\n");
-
-        b.append("Size: ");
-        b.append(d.size);
-        b.append(" bytes\n");
-
-        b.append("First bytes: ");
-        b.append(HexDump.toHex(d.bytes));
-
-        return b.toString();
+    protected String renderAsString(final DocumentDescriptor d) {
+        return "Name: " +
+                d.name +
+                " " +
+                HexDump.toHex(d.name) +
+                "\n" +
+                "Size: " +
+                d.size +
+                " bytes\n" +
+                "First bytes: " +
+                HexDump.toHex(d.bytes);
     }
-
 }
index ec84847d684b19cc7dfaf50382847a8d1a36638d..d260bdd4b3e30600f8dc269855c3966e8bcbf5ec 100644 (file)
@@ -84,9 +84,7 @@ public class POIBrowser extends JFrame
 
         /* Add the POI filesystems to the tree. */
         int displayedFiles = 0;
-        for (int i = 0; i < args.length; i++)
-        {
-            final String filename = args[i];
+        for (final String filename : args) {
             try {
                 FileInputStream fis = new FileInputStream(filename);
                 POIFSReader r = new POIFSReader();
@@ -98,7 +96,7 @@ public class POIBrowser extends JFrame
                 System.err.println(filename + ": " + ex);
             } catch (Exception t) {
                 System.err.println("Unexpected exception while reading \"" +
-                                   filename + "\":");
+                        filename + "\":");
                 t.printStackTrace(System.err);
             }
         }
index d4f8e0105d1a9c412790f2b7e5e19721f9d78b34..b36c425f8c2ed26a99448b3ca9f76930a94395f1 100644 (file)
@@ -333,10 +333,10 @@ public class AddDimensionedImage {
             URL imageFile, double reqImageWidthMM, double reqImageHeightMM,
             int resizeBehaviour) throws IOException,
                                                      IllegalArgumentException {
-        ClientAnchor anchor = null;
-        ClientAnchorDetail rowClientAnchorDetail = null;
-        ClientAnchorDetail colClientAnchorDetail = null;
-        int imageType = 0;
+        ClientAnchor anchor;
+        ClientAnchorDetail rowClientAnchorDetail;
+        ClientAnchorDetail colClientAnchorDetail;
+        int imageType;
 
         // Validate the resizeBehaviour parameter.
         if((resizeBehaviour != AddDimensionedImage.EXPAND_COLUMN) &&
@@ -427,9 +427,9 @@ public class AddDimensionedImage {
     private ClientAnchorDetail fitImageToColumns(Sheet sheet, int colNumber,
             double reqImageWidthMM, int resizeBehaviour) {
 
-        double colWidthMM = 0.0D;
-        double colCoordinatesPerMM = 0.0D;
-        int pictureWidthCoordinates = 0;
+        double colWidthMM;
+        double colCoordinatesPerMM;
+        int pictureWidthCoordinates;
         ClientAnchorDetail colClientAnchorDetail = null;
 
         // Get the colum's width in millimetres
@@ -522,10 +522,10 @@ public class AddDimensionedImage {
      */
     private ClientAnchorDetail fitImageToRows(Sheet sheet, int rowNumber,
             double reqImageHeightMM, int resizeBehaviour) {
-        Row row = null;
-        double rowHeightMM = 0.0D;
-        double rowCoordinatesPerMM = 0.0D;
-        int pictureHeightCoordinates = 0;
+        Row row;
+        double rowHeightMM;
+        double rowCoordinatesPerMM;
+        int pictureHeightCoordinates;
         ClientAnchorDetail rowClientAnchorDetail = null;
 
         // Get the row and it's height
@@ -612,13 +612,13 @@ public class AddDimensionedImage {
     private ClientAnchorDetail calculateColumnLocation(Sheet sheet,
                                                        int startingColumn,
                                                        double reqImageWidthMM) {
-        ClientAnchorDetail anchorDetail = null;
+        ClientAnchorDetail anchorDetail;
         double totalWidthMM = 0.0D;
         double colWidthMM = 0.0D;
-        double overlapMM = 0.0D;
-        double coordinatePositionsPerMM = 0.0D;
+        double overlapMM;
+        double coordinatePositionsPerMM;
         int toColumn = startingColumn;
-        int inset = 0;
+        int inset;
 
         // Calculate how many columns the image will have to
         // span in order to be presented at the required size.
@@ -722,14 +722,14 @@ public class AddDimensionedImage {
      */
     private ClientAnchorDetail calculateRowLocation(Sheet sheet,
             int startingRow, double reqImageHeightMM) {
-        ClientAnchorDetail clientAnchorDetail = null;
-        Row row = null;
+        ClientAnchorDetail clientAnchorDetail;
+        Row row;
         double rowHeightMM = 0.0D;
         double totalRowHeightMM = 0.0D;
-        double overlapMM = 0.0D;
-        double rowCoordinatesPerMM = 0.0D;
+        double overlapMM;
+        double rowCoordinatesPerMM;
         int toRow = startingRow;
-        int inset = 0;
+        int inset;
 
         // Step through the rows in the sheet and accumulate a total of their
         // heights.
@@ -813,11 +813,11 @@ public class AddDimensionedImage {
      * @param args the command line arguments
      */
     public static void main(String[] args) throws IOException {
-       String imageFile = null;
-       String outputFile = null;
-        FileOutputStream fos = null;
-        Workbook workbook = null;
-        Sheet sheet = null;
+       String imageFile;
+       String outputFile;
+        FileOutputStream fos;
+        Workbook workbook;
+        Sheet sheet;
 
         if(args.length < 2){
                System.err.println("Usage: AddDimensionedImage imageFile outputFile");
@@ -962,8 +962,6 @@ public class AddDimensionedImage {
 
         /**
         * pixel units to excel width units(units of 1/256th of a character width)
-        * @param pxs
-        * @return
         */
         public static short pixel2WidthUnits(int pxs) {
             short widthUnits = (short) (EXCEL_COLUMN_WIDTH_FACTOR *
@@ -975,9 +973,6 @@ public class AddDimensionedImage {
         /**
          * excel width units(units of 1/256th of a character width) to pixel
          * units.
-         *
-         * @param widthUnits
-         * @return
          */
         public static int widthUnits2Pixel(short widthUnits) {
             int pixels = (widthUnits / EXCEL_COLUMN_WIDTH_FACTOR)
index 21d182b15b89b5f106315edf99aa37f193e3443c..17ce8dd403d4ead173f82a9014bf837cc12cd9f6 100644 (file)
@@ -63,7 +63,6 @@ public class ConditionalFormats {
      * generates a sample workbook with conditional formatting,
      * and prints out a summary of applied formats for one sheet
      * @param args pass "-xls" to generate an HSSF workbook, default is XSSF
-     * @throws IOException
      */
     public static void main(String[] args) throws IOException {
         Workbook wb;
@@ -656,8 +655,6 @@ public class ConditionalFormats {
     /**
      * Print out a summary of the conditional formatting rules applied to cells on the given sheet.
      * Only cells with a matching rule are printed, and for those, all matching rules are sumarized.
-     * @param wb
-     * @param sheetName
      */
     static void evaluateRules(Workbook wb, String sheetName) {
         final WorkbookEvaluatorProvider wbEvalProv = (WorkbookEvaluatorProvider) wb.getCreationHelper().createFormulaEvaluator();
index a2e39c4c69caa0c8eaa0b6dadf3f0358de105766..194456b90d11194ecbe302a2e4c80a8b88c55e30 100644 (file)
@@ -285,8 +285,8 @@ public class ToCSV {
                               IllegalArgumentException, InvalidFormatException {
         File source = new File(strSource);
         File destination = new File(strDestination);
-        File[] filesList = null;
-        String destinationFilename = null;
+        File[] filesList;
+        String destinationFilename;
 
         // Check that the source file/folder exists.
         if(!source.exists()) {
@@ -406,9 +406,9 @@ public class ToCSV {
      * a CSV file.
      */
     private void convertToCSV() {
-        Sheet sheet = null;
-        Row row = null;
-        int lastRowNum = 0;
+        Sheet sheet;
+        Row row;
+        int lastRowNum;
         this.csvData = new ArrayList<>();
 
         System.out.println("Converting files contents to CSV format.");
@@ -451,11 +451,11 @@ public class ToCSV {
      */
     private void saveCSVFile(File file)
                                      throws FileNotFoundException, IOException {
-        FileWriter fw = null;
+        FileWriter fw;
         BufferedWriter bw = null;
-        ArrayList<String> line = null;
-        StringBuffer buffer = null;
-        String csvLineElement = null;
+        ArrayList<String> line;
+        StringBuffer buffer;
+        String csvLineElement;
         try {
 
             System.out.println("Saving the CSV file [" + file.getName() + "]");
@@ -524,8 +524,8 @@ public class ToCSV {
      *            an Excel workbook.
      */
     private void rowToCSV(Row row) {
-        Cell cell = null;
-        int lastCellNum = 0;
+        Cell cell;
+        int lastCellNum;
         ArrayList<String> csvLine = new ArrayList<>();
 
         // Check to ensure that a row was recovered from the sheet as it is
@@ -603,7 +603,7 @@ public class ToCSV {
      *         speech mark characters correctly escaped.
      */
     private String escapeEmbeddedCharacters(String field) {
-        StringBuffer buffer = null;
+        StringBuffer buffer;
 
         // If the fields contents should be formatted to confrom with Excel's
         // convention....
@@ -671,7 +671,7 @@ public class ToCSV {
         // with matching names but different extensions - Test.xls and Test.xlsx
         // for example - then the CSV file generated from one will overwrite
         // that generated from the other.
-        ToCSV converter = null;
+        ToCSV converter;
         boolean converted = true;
         long startTime = System.currentTimeMillis();
         try {
index 97e06af9c6b24da3ca8328dd5bde70c66533a9ae..3177bc87795ca5609693a361045a2f3bd97c651b 100644 (file)
@@ -328,12 +328,9 @@ public class ToHtml {
             style = wb.getCellStyleAt((short) 0);
         }
         StringBuilder sb = new StringBuilder();
-        Formatter fmt = new Formatter(sb);
-        try {
+        try (Formatter fmt = new Formatter(sb)) {
             fmt.format("style_%02x", style.getIndex());
             return fmt.toString();
-        } finally {
-            fmt.close();
         }
     }
 
@@ -371,14 +368,14 @@ public class ToHtml {
     /**
      * computes the column widths, defined by the sheet. 
      * 
-     * @param sheet
+     * @param sheet The sheet for which to compute widths
      * @return Map with key: column index; value: column width in pixels
      *     <br>special keys: 
      *     <br>{@link #IDX_HEADER_COL_WIDTH} - width of the header column
      *     <br>{@link #IDX_TABLE_WIDTH} - width of the entire table 
      */
     private Map<Integer, Integer> computeWidths(Sheet sheet) {
-        Map<Integer, Integer> ret = new TreeMap<Integer, Integer>();
+        Map<Integer, Integer> ret = new TreeMap<>();
         int tableWidth = 0;
 
         ensureColumnBounds(sheet);
index 80e4c7320a935fb96375a0f9caa601e5618304ff..f0d3eea1bffd165b31c39b9ab5ee41765257ade9 100644 (file)
@@ -20,7 +20,6 @@
 package org.apache.poi.xssf.eventusermodel.examples;
 
 import java.io.FileInputStream;
-import java.io.IOException;
 import java.io.InputStream;
 
 import org.apache.poi.crypt.examples.EncryptionUtils;
index 8a849026c742b2f1e9162054a5c9cf46e5e953f4..e38e8e9d0ea7eb6fe36ac9aa4c252af8bcf2d61d 100644 (file)
@@ -44,170 +44,148 @@ public class TestXSSFImportFromXML {
        
        @Test
        public void testImportFromXML() throws IOException, XPathExpressionException, SAXException{
-               
-                XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMappings.xlsx");
-                try {
-                String name = "name";
-                String teacher = "teacher";
-                String tutor = "tutor";
-                String cdl = "cdl";
-                String duration = "duration";
-                String topic = "topic";
-                String project = "project";
-                String credits = "credits";
-                
-                String testXML = "<CORSO>"+
-                                                 "<NOME>"+name+"</NOME>"+
-                                                 "<DOCENTE>"+teacher+"</DOCENTE>"+ 
-                                                 "<TUTOR>"+tutor+"</TUTOR>"+ 
-                                                 "<CDL>"+cdl+"</CDL>"+
-                                                 "<DURATA>"+duration+"</DURATA>"+ 
-                                                 "<ARGOMENTO>"+topic+"</ARGOMENTO>"+ 
-                                                 "<PROGETTO>"+project+"</PROGETTO>"+
-                                                 "<CREDITI>"+credits+"</CREDITI>"+ 
-                                                 "</CORSO>\u0000";             
-                
-                XSSFMap map = wb.getMapInfo().getXSSFMapByName("CORSO_mapping");
-                assertNotNull(map);
-                XSSFImportFromXML importer = new XSSFImportFromXML(map);
-                
-                importer.importFromXML(testXML);
-                
-                XSSFSheet sheet=wb.getSheetAt(0);
-                
-                XSSFRow row = sheet.getRow(0);
-                assertTrue(row.getCell(0).getStringCellValue().equals(name));
-                assertTrue(row.getCell(1).getStringCellValue().equals(teacher));
-                assertTrue(row.getCell(2).getStringCellValue().equals(tutor));
-                assertTrue(row.getCell(3).getStringCellValue().equals(cdl));
-                assertTrue(row.getCell(4).getStringCellValue().equals(duration));
-                assertTrue(row.getCell(5).getStringCellValue().equals(topic));
-                assertTrue(row.getCell(6).getStringCellValue().equals(project));
-                assertTrue(row.getCell(7).getStringCellValue().equals(credits));
-                } finally {
-                    wb.close();
-                }
+               try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMappings.xlsx")) {
+                       String name = "name";
+                       String teacher = "teacher";
+                       String tutor = "tutor";
+                       String cdl = "cdl";
+                       String duration = "duration";
+                       String topic = "topic";
+                       String project = "project";
+                       String credits = "credits";
+
+                       String testXML = "<CORSO>" +
+                                       "<NOME>" + name + "</NOME>" +
+                                       "<DOCENTE>" + teacher + "</DOCENTE>" +
+                                       "<TUTOR>" + tutor + "</TUTOR>" +
+                                       "<CDL>" + cdl + "</CDL>" +
+                                       "<DURATA>" + duration + "</DURATA>" +
+                                       "<ARGOMENTO>" + topic + "</ARGOMENTO>" +
+                                       "<PROGETTO>" + project + "</PROGETTO>" +
+                                       "<CREDITI>" + credits + "</CREDITI>" +
+                                       "</CORSO>\u0000";
+
+                       XSSFMap map = wb.getMapInfo().getXSSFMapByName("CORSO_mapping");
+                       assertNotNull(map);
+                       XSSFImportFromXML importer = new XSSFImportFromXML(map);
+
+                       importer.importFromXML(testXML);
+
+                       XSSFSheet sheet = wb.getSheetAt(0);
+
+                       XSSFRow row = sheet.getRow(0);
+                       assertTrue(row.getCell(0).getStringCellValue().equals(name));
+                       assertTrue(row.getCell(1).getStringCellValue().equals(teacher));
+                       assertTrue(row.getCell(2).getStringCellValue().equals(tutor));
+                       assertTrue(row.getCell(3).getStringCellValue().equals(cdl));
+                       assertTrue(row.getCell(4).getStringCellValue().equals(duration));
+                       assertTrue(row.getCell(5).getStringCellValue().equals(topic));
+                       assertTrue(row.getCell(6).getStringCellValue().equals(project));
+                       assertTrue(row.getCell(7).getStringCellValue().equals(credits));
+               }
        }
        
        @Test(timeout=60000)
        public void testMultiTable() throws IOException, XPathExpressionException, SAXException{
-               XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMappings-complex-type.xlsx");         
-               try {
-               String cellC6 = "c6";
-               String cellC7 = "c7";
-               String cellC8 = "c8";
-               String cellC9 = "c9";
-               
-               String testXML = "<ns1:MapInfo xmlns:ns1=\""+NS_SPREADSHEETML+"\" SelectionNamespaces=\"\">" +
-                                                "<ns1:Schema ID=\""+cellC6+"\" SchemaRef=\"a\" />"+ 
-                                                "<ns1:Schema ID=\""+cellC7+"\" SchemaRef=\"b\" />"+ 
-                                                "<ns1:Schema ID=\""+cellC8+"\" SchemaRef=\"c\" />"+ 
-                                                "<ns1:Schema ID=\""+cellC9+"\" SchemaRef=\"d\" />";
-               
-                                                for(int i = 10; i< 10010; i++){
-                                                        testXML +=  "<ns1:Schema ID=\"c"+i+"\" SchemaRef=\"d\" />";
-                                                }
-               
-                                               testXML += "<ns1:Map ID=\"1\" Name=\"\" RootElement=\"\" SchemaID=\"\" ShowImportExportValidationErrors=\"\" AutoFit=\"\" Append=\"\" PreserveSortAFLayout=\"\" PreserveFormat=\"\">"+
-                                                "<ns1:DataBinding DataBindingLoadMode=\"\" />"+ 
-                                                "</ns1:Map>"+
-                                                "<ns1:Map ID=\"2\" Name=\"\" RootElement=\"\" SchemaID=\"\" ShowImportExportValidationErrors=\"\" AutoFit=\"\" Append=\"\" PreserveSortAFLayout=\"\" PreserveFormat=\"\">"+
-                                                "<ns1:DataBinding DataBindingLoadMode=\"\" />"+ 
-                                                "</ns1:Map>"+
-                                                "<ns1:Map ID=\"3\" Name=\"\" RootElement=\"\" SchemaID=\"\" ShowImportExportValidationErrors=\"\" AutoFit=\"\" Append=\"\" PreserveSortAFLayout=\"\" PreserveFormat=\"\">"+
-                                                "<ns1:DataBinding DataBindingLoadMode=\"\" />"+ 
-                                                "</ns1:Map>"+
-                                                "</ns1:MapInfo>\u0000";
-    
-               XSSFMap map = wb.getMapInfo().getXSSFMapByName("MapInfo_mapping");
-               assertNotNull(map);
-               XSSFImportFromXML importer = new XSSFImportFromXML(map);
-                
-               importer.importFromXML(testXML);
-                
-               //Check for Schema element
-               XSSFSheet sheet=wb.getSheetAt(1);
-                
-               assertEquals(cellC6,sheet.getRow(5).getCell(2).getStringCellValue());
-               assertEquals(cellC7,sheet.getRow(6).getCell(2).getStringCellValue());
-               assertEquals(cellC8,sheet.getRow(7).getCell(2).getStringCellValue());
-               assertEquals(cellC9,sheet.getRow(8).getCell(2).getStringCellValue());
-               assertEquals("c5001",sheet.getRow(5000).getCell(2).getStringCellValue());
-        } finally {
-            wb.close();
-        }
+               try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMappings-complex-type.xlsx")) {
+                       String cellC6 = "c6";
+                       String cellC7 = "c7";
+                       String cellC8 = "c8";
+                       String cellC9 = "c9";
+
+                       StringBuilder testXML = new StringBuilder("<ns1:MapInfo xmlns:ns1=\"" + NS_SPREADSHEETML + "\" SelectionNamespaces=\"\">" +
+                                       "<ns1:Schema ID=\"" + cellC6 + "\" SchemaRef=\"a\" />" +
+                                       "<ns1:Schema ID=\"" + cellC7 + "\" SchemaRef=\"b\" />" +
+                                       "<ns1:Schema ID=\"" + cellC8 + "\" SchemaRef=\"c\" />" +
+                                       "<ns1:Schema ID=\"" + cellC9 + "\" SchemaRef=\"d\" />");
+
+                       for (int i = 10; i < 10010; i++) {
+                               testXML.append("<ns1:Schema ID=\"c").append(i).append("\" SchemaRef=\"d\" />");
+                       }
+
+                       testXML.append("<ns1:Map ID=\"1\" Name=\"\" RootElement=\"\" SchemaID=\"\" ShowImportExportValidationErrors=\"\" AutoFit=\"\" Append=\"\" PreserveSortAFLayout=\"\" PreserveFormat=\"\">" + "<ns1:DataBinding DataBindingLoadMode=\"\" />" + "</ns1:Map>" + "<ns1:Map ID=\"2\" Name=\"\" RootElement=\"\" SchemaID=\"\" ShowImportExportValidationErrors=\"\" AutoFit=\"\" Append=\"\" PreserveSortAFLayout=\"\" PreserveFormat=\"\">" + "<ns1:DataBinding DataBindingLoadMode=\"\" />" + "</ns1:Map>" + "<ns1:Map ID=\"3\" Name=\"\" RootElement=\"\" SchemaID=\"\" ShowImportExportValidationErrors=\"\" AutoFit=\"\" Append=\"\" PreserveSortAFLayout=\"\" PreserveFormat=\"\">" + "<ns1:DataBinding DataBindingLoadMode=\"\" />" + "</ns1:Map>" + "</ns1:MapInfo>\u0000");
+
+                       XSSFMap map = wb.getMapInfo().getXSSFMapByName("MapInfo_mapping");
+                       assertNotNull(map);
+                       XSSFImportFromXML importer = new XSSFImportFromXML(map);
+
+                       importer.importFromXML(testXML.toString());
+
+                       //Check for Schema element
+                       XSSFSheet sheet = wb.getSheetAt(1);
+
+                       assertEquals(cellC6, sheet.getRow(5).getCell(2).getStringCellValue());
+                       assertEquals(cellC7, sheet.getRow(6).getCell(2).getStringCellValue());
+                       assertEquals(cellC8, sheet.getRow(7).getCell(2).getStringCellValue());
+                       assertEquals(cellC9, sheet.getRow(8).getCell(2).getStringCellValue());
+                       assertEquals("c5001", sheet.getRow(5000).getCell(2).getStringCellValue());
+               }
        }
 
        
        @Test
        public void testSingleAttributeCellWithNamespace() throws IOException, XPathExpressionException, SAXException{
-               XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMapping-singleattributenamespace.xlsx");      
-               try {
-               int id = 1;
-               String displayName = "dispName";
-               String ref="19"; 
-               int count = 21;
-               
-               String testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>"+ 
-                                                "<ns1:table xmlns:ns1=\""+NS_SPREADSHEETML+"\" id=\""+id+"\" displayName=\""+displayName+"\" ref=\""+ref+"\">"+
-                                                "<ns1:tableColumns count=\""+count+"\" />"+ 
-                                                "</ns1:table>\u0000"; 
-               XSSFMap map = wb.getMapInfo().getXSSFMapByName("table_mapping");
-               assertNotNull(map);
-               XSSFImportFromXML importer = new XSSFImportFromXML(map);
-               importer.importFromXML(testXML);
-               
-               //Check for Schema element
-               XSSFSheet sheet=wb.getSheetAt(0);
-                
-               assertEquals(new Double(id), sheet.getRow(28).getCell(1).getNumericCellValue(), 0);
-               assertEquals(displayName, sheet.getRow(11).getCell(5).getStringCellValue());
-               assertEquals(ref, sheet.getRow(14).getCell(7).getStringCellValue());
-               assertEquals(new Double(count), sheet.getRow(18).getCell(3).getNumericCellValue(), 0);
-        } finally {
-            wb.close();
-        }
+               try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMapping-singleattributenamespace.xlsx")) {
+                       int id = 1;
+                       String displayName = "dispName";
+                       String ref = "19";
+                       int count = 21;
+
+                       String testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>" +
+                                       "<ns1:table xmlns:ns1=\"" + NS_SPREADSHEETML + "\" id=\"" + id + "\" displayName=\"" + displayName + "\" ref=\"" + ref + "\">" +
+                                       "<ns1:tableColumns count=\"" + count + "\" />" +
+                                       "</ns1:table>\u0000";
+                       XSSFMap map = wb.getMapInfo().getXSSFMapByName("table_mapping");
+                       assertNotNull(map);
+                       XSSFImportFromXML importer = new XSSFImportFromXML(map);
+                       importer.importFromXML(testXML);
+
+                       //Check for Schema element
+                       XSSFSheet sheet = wb.getSheetAt(0);
+
+                       assertEquals(new Double(id), sheet.getRow(28).getCell(1).getNumericCellValue(), 0);
+                       assertEquals(displayName, sheet.getRow(11).getCell(5).getStringCellValue());
+                       assertEquals(ref, sheet.getRow(14).getCell(7).getStringCellValue());
+                       assertEquals(new Double(count), sheet.getRow(18).getCell(3).getNumericCellValue(), 0);
+               }
        }
        
        @Test
        public void testOptionalFields_Bugzilla_55864() throws IOException, XPathExpressionException, SAXException {
-               XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("55864.xlsx");  
-               try {
-               String testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
-                               "<PersonInfoRoot>" +
-                               "<PersonData>" +
-                               "<FirstName>Albert</FirstName>" +
-                               "<LastName>Einstein</LastName>" +
-                               "<BirthDate>1879-03-14</BirthDate>" +
-                               "</PersonData>" +
-                               "</PersonInfoRoot>";
-               
-               XSSFMap map = wb.getMapInfo().getXSSFMapByName("PersonInfoRoot_Map");
-               assertNotNull(map);
-               XSSFImportFromXML importer = new XSSFImportFromXML(map);
-                
-               importer.importFromXML(testXML);
-                
-               XSSFSheet sheet=wb.getSheetAt(0);
-                
-                XSSFRow rowHeadings = sheet.getRow(0);
-                XSSFRow rowData = sheet.getRow(1);
-                
-                assertEquals("FirstName", rowHeadings.getCell(0).getStringCellValue());
-                assertEquals("Albert", rowData.getCell(0).getStringCellValue());
-                
-                assertEquals("LastName", rowHeadings.getCell(1).getStringCellValue());
-                assertEquals("Einstein", rowData.getCell(1).getStringCellValue());
-                
-                assertEquals("BirthDate", rowHeadings.getCell(2).getStringCellValue());
-                assertEquals("1879-03-14", rowData.getCell(2).getStringCellValue());
-                
-                // Value for OptionalRating is declared optional (minOccurs=0) in 55864.xlsx
-                assertEquals("OptionalRating", rowHeadings.getCell(3).getStringCellValue());
-                assertNull("", rowData.getCell(3));
-        } finally {
-            wb.close();
-        }
+               try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("55864.xlsx")) {
+                       String testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
+                                       "<PersonInfoRoot>" +
+                                       "<PersonData>" +
+                                       "<FirstName>Albert</FirstName>" +
+                                       "<LastName>Einstein</LastName>" +
+                                       "<BirthDate>1879-03-14</BirthDate>" +
+                                       "</PersonData>" +
+                                       "</PersonInfoRoot>";
+
+                       XSSFMap map = wb.getMapInfo().getXSSFMapByName("PersonInfoRoot_Map");
+                       assertNotNull(map);
+                       XSSFImportFromXML importer = new XSSFImportFromXML(map);
+
+                       importer.importFromXML(testXML);
+
+                       XSSFSheet sheet = wb.getSheetAt(0);
+
+                       XSSFRow rowHeadings = sheet.getRow(0);
+                       XSSFRow rowData = sheet.getRow(1);
+
+                       assertEquals("FirstName", rowHeadings.getCell(0).getStringCellValue());
+                       assertEquals("Albert", rowData.getCell(0).getStringCellValue());
+
+                       assertEquals("LastName", rowHeadings.getCell(1).getStringCellValue());
+                       assertEquals("Einstein", rowData.getCell(1).getStringCellValue());
+
+                       assertEquals("BirthDate", rowHeadings.getCell(2).getStringCellValue());
+                       assertEquals("1879-03-14", rowData.getCell(2).getStringCellValue());
+
+                       // Value for OptionalRating is declared optional (minOccurs=0) in 55864.xlsx
+                       assertEquals("OptionalRating", rowHeadings.getCell(3).getStringCellValue());
+                       assertNull("", rowData.getCell(3));
+               }
        }
 
        @Test
index 21c32c651a7e3dbc1877c26cc6665837298bd622..710ff2f3a3cec8c4db0233063ccb0836b64af72d 100644 (file)
@@ -180,8 +180,7 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
 
     @Test
     public void getCellStyleAt() throws IOException{
-         XSSFWorkbook workbook = new XSSFWorkbook();
-         try {
+        try (XSSFWorkbook workbook = new XSSFWorkbook()) {
             short i = 0;
             //get default style
             CellStyle cellStyleAt = workbook.getCellStyleAt(i);
@@ -194,17 +193,14 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
             font.setFontName("Verdana");
             customStyle.setFont(font);
             int x = styleSource.putStyle(customStyle);
-            cellStyleAt = workbook.getCellStyleAt((short)x);
+            cellStyleAt = workbook.getCellStyleAt((short) x);
             assertNotNull(cellStyleAt);
-         } finally {
-             workbook.close();
-         }
+        }
     }
 
     @Test
     public void getFontAt() throws IOException{
-         XSSFWorkbook workbook = new XSSFWorkbook();
-         try {
+        try (XSSFWorkbook workbook = new XSSFWorkbook()) {
             StylesTable styleSource = workbook.getStylesSource();
             short i = 0;
             //get default font
@@ -215,22 +211,17 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
             XSSFFont customFont = new XSSFFont();
             customFont.setItalic(true);
             int x = styleSource.putFont(customFont);
-            fontAt = workbook.getFontAt((short)x);
+            fontAt = workbook.getFontAt((short) x);
             assertNotNull(fontAt);
-         } finally {
-             workbook.close();
-         }
+        }
     }
 
     @Test
     public void getNumCellStyles() throws IOException{
-         XSSFWorkbook workbook = new XSSFWorkbook();
-         try {
+        try (XSSFWorkbook workbook = new XSSFWorkbook()) {
             //get default cellStyles
             assertEquals(1, workbook.getNumCellStyles());
-         } finally {
-             workbook.close();
-         }
+        }
     }
 
     @Test
@@ -303,35 +294,27 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
 
     @Test
     public void incrementSheetId() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        try {
-            int sheetId = (int)wb.createSheet().sheet.getSheetId();
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
+            int sheetId = (int) wb.createSheet().sheet.getSheetId();
             assertEquals(1, sheetId);
-            sheetId = (int)wb.createSheet().sheet.getSheetId();
+            sheetId = (int) wb.createSheet().sheet.getSheetId();
             assertEquals(2, sheetId);
 
             //test file with gaps in the sheetId sequence
-            XSSFWorkbook wbBack = XSSFTestDataSamples.openSampleWorkbook("47089.xlsm");
-            try {
-                int lastSheetId = (int)wbBack.getSheetAt(wbBack.getNumberOfSheets() - 1).sheet.getSheetId();
-                sheetId = (int)wbBack.createSheet().sheet.getSheetId();
-                assertEquals(lastSheetId+1, sheetId);
-            } finally {
-                wbBack.close();
+            try (XSSFWorkbook wbBack = XSSFTestDataSamples.openSampleWorkbook("47089.xlsm")) {
+                int lastSheetId = (int) wbBack.getSheetAt(wbBack.getNumberOfSheets() - 1).sheet.getSheetId();
+                sheetId = (int) wbBack.createSheet().sheet.getSheetId();
+                assertEquals(lastSheetId + 1, sheetId);
             }
-        } finally {
-            wb.close();
         }
     }
 
     /**
      *  Test setting of core properties such as Title and Author
-     * @throws IOException
      */
     @Test
     public void workbookProperties() throws IOException {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook workbook = new XSSFWorkbook()) {
             POIXMLProperties props = workbook.getProperties();
             assertNotNull(props);
             //the Application property must be set for new workbooks, see Bugzilla #47559
@@ -350,8 +333,6 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
             assertEquals("Testing Bugzilla #47460", opcProps.getTitleProperty().getValue());
             assertEquals("poi-dev@poi.apache.org", opcProps.getCreatorProperty().getValue());
             wbBack.close();
-        } finally {
-            workbook.close();
         }
     }
 
@@ -396,6 +377,7 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
     /**
      * When deleting a sheet make sure that we adjust sheet indices of named ranges
      */
+    @SuppressWarnings("deprecation")
     @Test
     public void bug47737() throws IOException {
         XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("47737.xlsx");
@@ -500,8 +482,7 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
 
     @Test
     public void recalcId() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             assertFalse(wb.getForceFormulaRecalculation());
             CTWorkbook ctWorkbook = wb.getCTWorkbook();
             assertFalse(ctWorkbook.isSetCalcPr());
@@ -523,8 +504,6 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
             calcPr.setCalcMode(STCalcMode.MANUAL);
             wb.setForceFormulaRecalculation(true);
             assertEquals(STCalcMode.AUTO, calcPr.getCalcMode());
-        } finally {
-            wb.close();
         }
     }
 
@@ -549,11 +528,8 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
 
         accessWorkbook(workbook);
 
-        ByteArrayOutputStream stream = new ByteArrayOutputStream();
-        try {
+        try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
             workbook.write(stream);
-        } finally {
-            stream.close();
         }
 
         accessWorkbook(workbook);
@@ -703,8 +679,7 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
     @Test
     public void bug51158a() throws IOException {
         // create a workbook
-        final XSSFWorkbook workbook = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook workbook = new XSSFWorkbook()) {
             workbook.createSheet("Test Sheet");
 
             XSSFSheet sheetBack = workbook.getSheetAt(0);
@@ -713,7 +688,7 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
             sheetBack.commit();
 
             // ensure that a memory based package part does not have lingering data from previous commit() calls
-            if(sheetBack.getPackagePart() instanceof MemoryPackagePart) {
+            if (sheetBack.getPackagePart() instanceof MemoryPackagePart) {
                 sheetBack.getPackagePart().clear();
             }
 
@@ -722,8 +697,6 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
             String str = new String(IOUtils.toByteArray(sheetBack.getPackagePart().getInputStream()), "UTF-8");
 
             assertEquals(1, countMatches(str, "<worksheet"));
-        } finally {
-            workbook.close();
         }
     }
 
@@ -752,16 +725,13 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
 
     @Test
     public void testAddPivotCache() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             CTWorkbook ctWb = wb.getCTWorkbook();
             CTPivotCache pivotCache = wb.addPivotCache("0");
             //Ensures that pivotCaches is initiated
             assertTrue(ctWb.isSetPivotCaches());
             assertSame(pivotCache, ctWb.getPivotCaches().getPivotCacheArray(0));
             assertEquals("0", pivotCache.getId());
-        } finally {
-            wb.close();
         }
     }
 
@@ -801,22 +771,16 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
     public void testLoadWorkbookWithPivotTable() throws Exception {
         File file = TempFile.createTempFile("ooxml-pivottable", ".xlsx");
 
-        XSSFWorkbook wb = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             setPivotData(wb);
 
             FileOutputStream fileOut = new FileOutputStream(file);
             wb.write(fileOut);
             fileOut.close();
-        } finally {
-            wb.close();
         }
 
-        XSSFWorkbook wb2 = (XSSFWorkbook) WorkbookFactory.create(file);
-        try {
+        try (XSSFWorkbook wb2 = (XSSFWorkbook) WorkbookFactory.create(file)) {
             assertTrue(wb2.getPivotTables().size() == 1);
-        } finally {
-            wb2.close();
         }
 
         assertTrue(file.delete());
@@ -826,26 +790,17 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
     public void testAddPivotTableToWorkbookWithLoadedPivotTable() throws Exception {
         File file = TempFile.createTempFile("ooxml-pivottable", ".xlsx");
 
-        XSSFWorkbook wb = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             setPivotData(wb);
 
-            FileOutputStream fileOut = new FileOutputStream(file);
-            try {
+            try (FileOutputStream fileOut = new FileOutputStream(file)) {
                 wb.write(fileOut);
-            } finally {
-                fileOut.close();
             }
-        } finally {
-            wb.close();
         }
 
-        XSSFWorkbook wb2 = (XSSFWorkbook) WorkbookFactory.create(file);
-        try {
+        try (XSSFWorkbook wb2 = (XSSFWorkbook) WorkbookFactory.create(file)) {
             setPivotData(wb2);
             assertTrue(wb2.getPivotTables().size() == 2);
-        } finally {
-            wb2.close();
         }
 
         assertTrue(file.delete());
@@ -853,17 +808,17 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
 
     @Test
     public void testSetFirstVisibleTab_57373() throws IOException {
-        Workbook wb = new XSSFWorkbook();
 
-        try {
-            /*Sheet sheet1 =*/ wb.createSheet();
+        try (Workbook wb = new XSSFWorkbook()) {
+            /*Sheet sheet1 =*/
+            wb.createSheet();
             Sheet sheet2 = wb.createSheet();
             int idx2 = wb.getSheetIndex(sheet2);
             Sheet sheet3 = wb.createSheet();
             int idx3 = wb.getSheetIndex(sheet3);
 
             // add many sheets so "first visible" is relevant
-            for(int i = 0; i < 30;i++) {
+            for (int i = 0; i < 30; i++) {
                 wb.createSheet();
             }
 
@@ -878,12 +833,12 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
             Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb);
 
             sheet2 = wbBack.getSheetAt(idx2);
+            assertNotNull(sheet2);
             sheet3 = wbBack.getSheetAt(idx3);
+            assertNotNull(sheet3);
             assertEquals(idx2, wb.getFirstVisibleTab());
             assertEquals(idx3, wb.getActiveSheetIndex());
             wbBack.close();
-        } finally {
-            wb.close();
         }
     }
 
@@ -947,8 +902,8 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
      *  In order to make code for looping over sheets in workbooks standard, regardless
      *  of the type of workbook (HSSFWorkbook, XSSFWorkbook, SXSSFWorkbook), the previously
      *  available Iterator<XSSFSheet> iterator and Iterator<XSSFSheet> sheetIterator
-     *  have been replaced with Iterator<Sheet>  {@link #iterator} and
-     *  Iterator<Sheet> {@link #sheetIterator}. This makes iterating over sheets in a workbook
+     *  have been replaced with Iterator<Sheet>  {@link Sheet#iterator} and
+     *  Iterator<Sheet> {@link Workbook#sheetIterator}. This makes iterating over sheets in a workbook
      *  similar to iterating over rows in a sheet and cells in a row.
      *
      *  Note: this breaks backwards compatibility! Existing codebases will need to
@@ -1124,6 +1079,7 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
        wb.close();
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testRemoveSheet() throws IOException {
         // Test removing a sheet maintains the named ranges correctly