]> source.dussan.org Git - poi.git/commitdiff
sonar fixes - blocker
authorAndreas Beeker <kiwiwings@apache.org>
Fri, 31 Aug 2018 11:56:18 +0000 (11:56 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Fri, 31 Aug 2018 11:56:18 +0000 (11:56 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1839745 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/poifs/filesystem/EntryUtils.java
src/java/org/apache/poi/poifs/nio/FileBackedDataSource.java
src/java/org/apache/poi/ss/usermodel/TableStyleType.java
src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java
src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextParagraph.java
src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java
src/scratchpad/src/org/apache/poi/hwpf/converter/WordToTextConverter.java
src/scratchpad/src/org/apache/poi/hwpf/model/OldTextPiece.java

index 0cc52e4d246da1b1fe929bd4e89e009f54b3ff46..68bd85bae34af0a0c6354ecd006e506adf882eb0 100644 (file)
@@ -158,6 +158,11 @@ public final class EntryUtils {
                 : new DocumentDelegate((DocumentEntry)entry);
         }
 
+        @Override
+        public int hashCode() {
+            return dir.getName().hashCode();
+        }
+
         @Override
         public boolean equals(Object other) {
             if (!(other instanceof DirectoryDelegate)) {
@@ -191,6 +196,11 @@ public final class EntryUtils {
             this.doc = doc;
         }
 
+        @Override
+        public int hashCode() {
+            return doc.getName().hashCode();
+        }
+
         @Override
         public boolean equals(Object other) {
             if (!(other instanceof DocumentDelegate)) {
index 88094f2e62342a3c242495b30f55652795e29ccb..f9549cf54239bb343d0582e4b11a2014a068bd18 100644 (file)
@@ -127,9 +127,10 @@ public class FileBackedDataSource extends DataSource {
    @Override
    public void copyTo(OutputStream stream) throws IOException {
       // Wrap the OutputSteam as a channel
-      WritableByteChannel out = Channels.newChannel(stream);
-      // Now do the transfer
-      channel.transferTo(0, channel.size(), out);
+      try (WritableByteChannel out = Channels.newChannel(stream)) {
+          // Now do the transfer
+          channel.transferTo(0, channel.size(), out);
+      }
    }
 
    @Override
index be7c84c69710a514963408e025b8c4ce019beebc..870436a3b426529aa7dcbbb3385359d9aa67f062 100644 (file)
@@ -65,7 +65,7 @@ public enum TableStyleType {
             // could do fancy math, but tables can't be that wide, a simple loop is fine
             // if not in this type of stripe, return null
             while (firstStart <= c) {
-                if (c >= firstStart && c <= secondStart -1) {
+                if (c <= secondStart -1) {
                     return new CellRangeAddress(table.getStartRowIndex(), table.getEndRowIndex(), firstStart, secondStart - 1);
                 }
                 firstStart = secondStart + c2Stripe;
@@ -121,7 +121,7 @@ public enum TableStyleType {
             // could do fancy math, but tables can't be that wide, a simple loop is fine
             // if not in this type of stripe, return null
             while (firstStart <= c) {
-                if (c >= firstStart && c <= secondStart -1) {
+                if (c <= secondStart -1) {
                     return new CellRangeAddress(firstStart, secondStart - 1, table.getStartColIndex(), table.getEndColIndex());
                 }
                 firstStart = secondStart + c2Stripe;
index 975e21d9815c231677a5f76e6457f11ac6b3b13d..ecec63ce9f12b51a42449d0a78e5e5e40afaa0d3 100644 (file)
@@ -101,7 +101,7 @@ public final class ZipPackage extends OPCPackage {
      */
     ZipPackage(InputStream in, PackageAccess access) throws IOException {
         super(access);
-        ZipArchiveThresholdInputStream zis = ZipHelper.openZipStream(in);
+        ZipArchiveThresholdInputStream zis = ZipHelper.openZipStream(in); // NOSONAR
         try {
             this.zipArchive = new ZipInputStreamZipEntrySource(zis);
         } catch (final IOException e) {
index 7ba6f8e2bf9e89fa0e1cda4629a5f4f86769d5d4..46815ea3a4f5aeb68c7115d852bb9b5501d0d636 100644 (file)
@@ -24,6 +24,8 @@ import java.util.List;
 import java.util.Optional;
 import java.util.function.Function;
 
+import org.apache.commons.collections4.iterators.IteratorIterable;
+import org.apache.commons.collections4.iterators.ReverseListIterator;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LocaleUtil;
@@ -97,8 +99,8 @@ public class XDDFTextParagraph {
     public XDDFTextRun appendLineBreak() {
         CTTextLineBreak br = _p.addNewBr();
         // by default, line break has the font properties of the last text run
-        for (int i = _runs.size() - 1; i <= 0; i--) {
-            CTTextCharacterProperties prevProps = _runs.get(i).getProperties();
+        for (XDDFTextRun tr : new IteratorIterable<>(new ReverseListIterator<>(_runs))) {
+            CTTextCharacterProperties prevProps = tr.getProperties();
             // let's find one that is not undefined
             if (prevProps != null) {
                 br.setRPr((CTTextCharacterProperties) prevProps.copy());
index c066fcd2bd40def4986c3124a3631dc5ed77f611..6fbcb140353a86dc288e77a67e4a1cdcd1339c55 100644 (file)
@@ -931,8 +931,10 @@ public class SXSSFWorkbook implements Workbook {
             }
 
             //Substitute the template entries with the generated sheet data files
-            final ZipEntrySource source = new ZipFileZipEntrySource(new ZipSecureFile(tmplFile));
-            injectData(source, stream);
+            try (ZipSecureFile zf = new ZipSecureFile(tmplFile);
+                 ZipFileZipEntrySource source = new ZipFileZipEntrySource(zf)) {
+                injectData(source, stream);
+            }
         } finally {
             deleted = tmplFile.delete();
         }
index 840e533ed9c9730a71e35f29384346c7034c4629..c971b3a9261f2c66f2043babd547c83d682ee639 100644 (file)
@@ -292,7 +292,7 @@ public class XWPFRun implements ISDTContents, IRunElement, CharacterRun {
         String color = null;
         if (run.isSetRPr()) {
             CTRPr pr = getRunProperties(false);
-            if (pr.isSetColor()) {
+            if (pr != null && pr.isSetColor()) {
                 CTColor clr = pr.getColor();
                 color = clr.xgetVal().getStringValue();
             }
index 0e6e7672796beab2c0b6c1f4dd9061a43b458e98..ecc360e135f5a6ad301f44a32ea53c22f790df63 100644 (file)
@@ -46,8 +46,8 @@ import org.apache.poi.hslf.model.MovieShape;
 import org.apache.poi.hslf.record.*;
 import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.poifs.filesystem.Ole10Native;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.sl.usermodel.MasterSheet;
 import org.apache.poi.sl.usermodel.PictureData.PictureType;
 import org.apache.poi.sl.usermodel.Resources;
@@ -595,6 +595,9 @@ public final class HSLFSlideShow implements SlideShow<HSLFShape,HSLFTextParagrap
                // The order of slides is defined by the order of slide atom sets in the
                // SlideListWithText container.
                SlideListWithText slwt = _documentRecord.getSlideSlideListWithText();
+               if (slwt == null) {
+                       throw new IllegalStateException("Slide record not defined.");
+               }
                SlideAtomsSet[] sas = slwt.getSlideAtomsSets();
 
                SlideAtomsSet tmp = sas[oldSlideNumber - 1];
@@ -635,6 +638,9 @@ public final class HSLFSlideShow implements SlideShow<HSLFShape,HSLFTextParagrap
                }
 
                SlideListWithText slwt = _documentRecord.getSlideSlideListWithText();
+               if (slwt == null) {
+                       throw new IllegalStateException("Slide record not defined.");
+               }
                SlideAtomsSet[] sas = slwt.getSlideAtomsSets();
 
                List<Record> records = new ArrayList<>();
@@ -678,12 +684,14 @@ public final class HSLFSlideShow implements SlideShow<HSLFShape,HSLFTextParagrap
                                                records.addAll(Arrays.asList(ns.getSlideRecords()));
                                        }
                                }
+
+                               if (!na.isEmpty()) {
+                                       nslwt.setSlideAtomsSets(na.toArray(new SlideAtomsSet[0]));
+                                       nslwt.setChildRecord(records.toArray(new Record[0]));
+                               }
                        }
                        if (na.isEmpty()) {
                                _documentRecord.removeSlideListWithText(nslwt);
-                       } else {
-                               nslwt.setSlideAtomsSets(na.toArray(new SlideAtomsSet[0]));
-                               nslwt.setChildRecord(records.toArray(new Record[0]));
                        }
                }
 
@@ -1113,7 +1121,7 @@ public final class HSLFSlideShow implements SlideShow<HSLFShape,HSLFTextParagrap
     }
 
     @Override
-    public MasterSheet<HSLFShape,HSLFTextParagraph> createMasterSheet() throws IOException {
+    public MasterSheet<HSLFShape,HSLFTextParagraph> createMasterSheet() {
                // TODO implement or throw exception if not supported
         return null;
     }
index 0cdc68d63f6a076fcf46182026ccd91a2fffed2c..b469df3031c1b0fda7ff7c046c305b9f801a7d77 100644 (file)
@@ -17,6 +17,7 @@
 package org.apache.poi.hwpf.converter;
 
 import java.io.File;
+import java.io.IOException;
 import java.io.StringWriter;
 import java.lang.reflect.Method;
 import java.util.List;
@@ -114,14 +115,13 @@ public class WordToTextConverter extends AbstractWordConverter
         serializer.transform( domSource, streamResult );
     }
 
-    static Document process( File docFile ) throws Exception
-    {
-        final HWPFDocumentCore wordDocument = AbstractWordUtils
-                .loadDoc( docFile );
-        WordToTextConverter wordToTextConverter = new WordToTextConverter(
-                XMLHelper.getDocumentBuilderFactory().newDocumentBuilder().newDocument() );
-        wordToTextConverter.processDocument( wordDocument );
-        return wordToTextConverter.getDocument();
+    private static Document process( File docFile ) throws IOException, ParserConfigurationException {
+        try (final HWPFDocumentCore wordDocument = AbstractWordUtils.loadDoc( docFile )) {
+            WordToTextConverter wordToTextConverter = new WordToTextConverter(
+                    XMLHelper.getDocumentBuilderFactory().newDocumentBuilder().newDocument());
+            wordToTextConverter.processDocument(wordDocument);
+            return wordToTextConverter.getDocument();
+        }
     }
 
     private AtomicInteger noteCounters = new AtomicInteger( 1 );
@@ -153,12 +153,14 @@ public class WordToTextConverter extends AbstractWordConverter
      * @param document
      *            XML DOM Document used as storage for text pieces
      */
-    public WordToTextConverter( Document document )
+    @SuppressWarnings("WeakerAccess")
+    public WordToTextConverter(Document document )
     {
         this.textDocumentFacade = new TextDocumentFacade( document );
     }
 
-    public WordToTextConverter( TextDocumentFacade textDocumentFacade )
+    @SuppressWarnings("unused")
+    public WordToTextConverter(TextDocumentFacade textDocumentFacade )
     {
         this.textDocumentFacade = textDocumentFacade;
     }
@@ -192,6 +194,7 @@ public class WordToTextConverter extends AbstractWordConverter
         return stringWriter.toString();
     }
 
+    @SuppressWarnings("WeakerAccess")
     public boolean isOutputSummaryInformation()
     {
         return outputSummaryInformation;
@@ -275,7 +278,7 @@ public class WordToTextConverter extends AbstractWordConverter
 
         currentBlock.appendChild( textDocumentFacade.createText( " ("
                 + UNICODECHAR_ZERO_WIDTH_SPACE
-                + hyperlink.replaceAll( "\\/", UNICODECHAR_ZERO_WIDTH_SPACE
+                + hyperlink.replaceAll( "/", UNICODECHAR_ZERO_WIDTH_SPACE
                         + "\\/" + UNICODECHAR_ZERO_WIDTH_SPACE )
                 + UNICODECHAR_ZERO_WIDTH_SPACE + ")" ) );
     }
@@ -307,9 +310,7 @@ public class WordToTextConverter extends AbstractWordConverter
         block.appendChild( textDocumentFacade.createText( "\n" ) );
     }
 
-    protected void processNote( HWPFDocument wordDocument, Element block,
-            Range noteTextRange )
-    {
+    private void processNote( HWPFDocument wordDocument, Element block, Range noteTextRange ) {
         final int noteIndex = noteCounters.getAndIncrement();
         block.appendChild( textDocumentFacade
                 .createText( UNICODECHAR_ZERO_WIDTH_SPACE + "[" + noteIndex
@@ -457,7 +458,8 @@ public class WordToTextConverter extends AbstractWordConverter
         }
     }
 
-    public void setOutputSummaryInformation( boolean outputDocumentInformation )
+    @SuppressWarnings("unused")
+    public void setOutputSummaryInformation(boolean outputDocumentInformation )
     {
         this.outputSummaryInformation = outputDocumentInformation;
     }
index 6fc78dfd05b072f546f65d29c6abdde7aa739542..df0104fe8ac006974d6290694f77db2864ee4d85 100644 (file)
@@ -18,6 +18,8 @@
 package org.apache.poi.hwpf.model;
 
 
+import java.util.Arrays;
+
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.NotImplemented;
 
@@ -102,6 +104,12 @@ public class OldTextPiece extends TextPiece {
         return 42; // any arbitrary constant will do
     }
 
+    @Override
+    public boolean equals(Object other) {
+        return other instanceof OldTextPiece &&
+            Arrays.equals(rawBytes, ((OldTextPiece)other).rawBytes);
+    }
+
     public String toString() {
         return "OldTextPiece from " + getStart() + " to " + getEnd() + " ("
                 + getPieceDescriptor() + ")";