]> source.dussan.org Git - poi.git/commitdiff
sonar fixes
authorAndreas Beeker <kiwiwings@apache.org>
Mon, 28 Mar 2016 22:46:53 +0000 (22:46 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Mon, 28 Mar 2016 22:46:53 +0000 (22:46 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1736932 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java
src/scratchpad/src/org/apache/poi/hwpf/model/Colorref.java

index 1e1d833de5096238a96a9f8e0279554d922cceba..2cbf089a243e227b8d4ae0c5369f816dea4c4dad 100644 (file)
@@ -44,7 +44,6 @@ import org.apache.poi.poifs.filesystem.DocumentNode;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
 import org.apache.poi.poifs.filesystem.NotOLE2FileException;
 import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.util.IOUtils;
 
 /**
  * A text extractor for old Excel files, which are too old for
@@ -58,45 +57,41 @@ import org.apache.poi.util.IOUtils;
  */
 public class OldExcelExtractor implements Closeable {
     private RecordInputStream ris;
-    private Closeable input;
     private int biffVersion;
     private int fileType;
 
     public OldExcelExtractor(InputStream input) throws IOException {
-        BufferedInputStream bstream = new BufferedInputStream(input, 8);
-        if (NPOIFSFileSystem.hasPOIFSHeader(bstream)) {
-            open(new NPOIFSFileSystem(bstream));
-        } else {
-            open(bstream);
-        }
+        open(input);
     }
 
     public OldExcelExtractor(File f) throws IOException {
+        NPOIFSFileSystem poifs = null;
         try {
-            open(new NPOIFSFileSystem(f));
-        } catch (OldExcelFormatException oe) {
-            FileInputStream biffStream = new FileInputStream(f);
-            try {
-                open(biffStream);
-            } catch (RuntimeException e2) {
-                // ensure that the stream is properly closed here if an Exception
-                // is thrown while opening
-                biffStream.close();
-
-                throw e2;
+            poifs = new NPOIFSFileSystem(f);
+            open(poifs);
+            return;
+        } catch (OldExcelFormatException e) {
+            // will be handled by workaround below
+            if (poifs != null) {
+                poifs.close();
             }
         } catch (NotOLE2FileException e) {
-            FileInputStream biffStream = new FileInputStream(f);
-            try {
-                open(biffStream);
-            } catch (RuntimeException e2) {
-                // ensure that the stream is properly closed here if an Exception
-                // is thrown while opening
-                biffStream.close();
-
-                throw e2;
+            // will be handled by workaround below
+            if (poifs != null) {
+                poifs.close();
             }
         }
+        
+        @SuppressWarnings("resource")
+        FileInputStream biffStream = new FileInputStream(f);
+        try {
+            open(biffStream);
+        } catch (IOException e)  {
+            // ensure that the stream is properly closed here if an Exception
+            // is thrown while opening
+            biffStream.close();
+            throw e;
+        }
     }
 
     public OldExcelExtractor(NPOIFSFileSystem fs) throws IOException {
@@ -107,14 +102,25 @@ public class OldExcelExtractor implements Closeable {
         open(directory);
     }
 
-    private void open(InputStream biffStream) {
-        input = biffStream;
-        ris = new RecordInputStream(biffStream);
-        prepare();
+    private void open(InputStream biffStream) throws IOException {
+        BufferedInputStream bis = (biffStream instanceof BufferedInputStream) 
+            ? (BufferedInputStream)biffStream
+            : new BufferedInputStream(biffStream, 8);
+
+        if (NPOIFSFileSystem.hasPOIFSHeader(bis)) {
+            NPOIFSFileSystem poifs = new NPOIFSFileSystem(bis);
+            try {
+                open(poifs);
+            } finally {
+                poifs.close();
+            }
+        } else {
+            ris = new RecordInputStream(bis);
+            prepare();
+        }
     }
 
     private void open(NPOIFSFileSystem fs) throws IOException {
-        input = fs;
         open(fs.getRoot());
     }
 
@@ -273,9 +279,7 @@ public class OldExcelExtractor implements Closeable {
 
     @Override
     public void close() {
-        if (input != null) {
-            IOUtils.closeQuietly(input);
-        }
+        // not necessary any more ...
     }
     
     protected void handleNumericCell(StringBuffer text, double value) {
index 6162f137fb8217cc1323e54c1f68753e1f08e638..95178c675aad03caf6478a47abea21591a3bbc11 100644 (file)
@@ -89,7 +89,7 @@ public class Colorref implements Cloneable
     @Override
     public Colorref clone() throws CloneNotSupportedException
     {
-        return new Colorref( this.value );
+        return (Colorref)super.clone();
     }
 
     @Override