]> source.dussan.org Git - poi.git/commitdiff
Fix some findbugs-issues and apply some code-cleanup and apply some smaller pull...
authorDominik Stadler <centic@apache.org>
Fri, 13 Oct 2017 09:40:22 +0000 (09:40 +0000)
committerDominik Stadler <centic@apache.org>
Fri, 13 Oct 2017 09:40:22 +0000 (09:40 +0000)
This closes #74, This closes #75, This closes #76

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1812097 13f79535-47bb-0310-9956-ffa450edef68

33 files changed:
src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java
src/java/org/apache/poi/ddf/EscherDggRecord.java
src/java/org/apache/poi/hpsf/Variant.java
src/java/org/apache/poi/hssf/record/aggregates/ColumnInfoRecordsAggregate.java
src/java/org/apache/poi/hssf/usermodel/DVConstraint.java
src/java/org/apache/poi/ss/formula/EvaluationConditionalFormatRule.java
src/java/org/apache/poi/ss/formula/FormulaParser.java
src/java/org/apache/poi/ss/formula/constant/ConstantValueParser.java
src/java/org/apache/poi/ss/formula/functions/Mode.java
src/java/org/apache/poi/ss/formula/functions/TextFunction.java
src/java/org/apache/poi/ss/formula/functions/Value.java
src/java/org/apache/poi/ss/usermodel/DataFormatter.java
src/java/org/apache/poi/ss/usermodel/ExcelStyleDateFormatter.java
src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/OOXMLSignatureFacet.java
src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHyperlinksTable.java
src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java
src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFComment.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java
src/resources/devtools/findbugs-filters.xml
src/scratchpad/src/org/apache/poi/hdgf/chunks/Chunk.java
src/scratchpad/src/org/apache/poi/hsmf/dev/TypesLister.java
src/scratchpad/src/org/apache/poi/hwpf/model/CHPBinTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/OldCHPBinTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/OldSectionTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/OldTextPieceTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/PAPBinTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/SectionTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/TextPieceTable.java
src/scratchpad/src/org/apache/poi/hwpf/usermodel/BookmarksImpl.java
src/scratchpad/src/org/apache/poi/hwpf/usermodel/FieldsImpl.java

index ff4a3e80dede9795641bce6badd0d7e805974d94..bd1da1db8d66e224b566f0f67aa5413c45a998f4 100644 (file)
@@ -17,7 +17,6 @@
 package org.apache.poi.ddf;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
@@ -135,16 +134,14 @@ public abstract class AbstractEscherOptRecord extends EscherRecord
      */
     public void sortProperties()
     {
-        Collections.sort( properties, new Comparator<EscherProperty>()
-        {
+        properties.sort(new Comparator<EscherProperty>() {
             @Override
-            public int compare( EscherProperty p1, EscherProperty p2 )
-            {
+            public int compare(EscherProperty p1, EscherProperty p2) {
                 short s1 = p1.getPropertyNumber();
                 short s2 = p2.getPropertyNumber();
                 return Short.compare(s1, s2);
             }
-        } );
+        });
     }
 
     /**
index 46e1aa8fcfae0ddbf13a5d4416b4a054c3891ab3..d8ed75ec67921d7581b607f4fbebe7b3046d1b09 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.poi.ddf;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.BitSet;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
@@ -260,7 +259,7 @@ public final class EscherDggRecord extends EscherRecord {
     }
 
     private void sortCluster() {
-        Collections.sort(field_5_fileIdClusters, new Comparator<FileIdCluster>() {
+        field_5_fileIdClusters.sort(new Comparator<FileIdCluster>() {
             @Override
             public int compare(FileIdCluster f1, FileIdCluster f2) {
                 int dgDif = f1.getDrawingGroupId() - f2.getDrawingGroupId();
index 32fc8aba8956155906b7c60d327ef35de4b96ce0..b93419545aa422712dab57204e0c8bee2177e432 100644 (file)
@@ -420,7 +420,7 @@ public class Variant
         }
         
         name += numberToName.get(vt);
-        return (name != null && !"".equals(name)) ? name : "unknown variant type";
+        return !"".equals(name) ? name : "unknown variant type";
     }
 
     /**
index 8dc14adb60e3aef40c3f77cfae928ca6e235789b..83c3a65185f99d9970fb944982fc0edee0df7bfc 100644 (file)
@@ -18,7 +18,6 @@
 package org.apache.poi.hssf.record.aggregates;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
@@ -71,7 +70,7 @@ public final class ColumnInfoRecordsAggregate extends RecordAggregate implements
                        throw new RuntimeException("No column info records found");
                }
                if (!isInOrder) {
-                       Collections.sort(records, CIRComparator.instance);
+                       records.sort(CIRComparator.instance);
                }
        }
 
@@ -89,7 +88,7 @@ public final class ColumnInfoRecordsAggregate extends RecordAggregate implements
         */
        public void insertColumn(ColumnInfoRecord col) {
                records.add(col);
-               Collections.sort(records, CIRComparator.instance);
+               records.sort(CIRComparator.instance);
        }
 
        /**
@@ -110,8 +109,7 @@ public final class ColumnInfoRecordsAggregate extends RecordAggregate implements
                        return;
                }
                ColumnInfoRecord cirPrev = null;
-               for(int i=0; i<nItems; i++) {
-                       ColumnInfoRecord cir = records.get(i);
+               for (ColumnInfoRecord cir : records) {
                        rv.visitRecord(cir);
                        if (cirPrev != null && CIRComparator.compareColInfos(cirPrev, cir) > 0) {
                                // Excel probably wouldn't mind, but there is much logic in this class
@@ -299,8 +297,7 @@ public final class ColumnInfoRecordsAggregate extends RecordAggregate implements
        public void setColumn(int targetColumnIx, Short xfIndex, Integer width,
                                        Integer level, Boolean hidden, Boolean collapsed) {
                ColumnInfoRecord ci = null;
-               int k  = 0;
-
+               int k;
                for (k = 0; k < records.size(); k++) {
                        ColumnInfoRecord tci = records.get(k);
                        if (tci.containsColumn(targetColumnIx)) {
index bf0ca4c4790f13ec6223117fd4888200b82d28ee..f3f5e557a49ef976737fa2cafdf8d281ca1e5cfc 100644 (file)
@@ -66,23 +66,23 @@ public class DVConstraint implements DataValidationConstraint {
 
        
        private DVConstraint(int validationType, int comparisonOperator, String formulaA,
-                       String formulaB, Double value1, Double value2, String[] excplicitListValues) {
+                       String formulaB, Double value1, Double value2, String[] explicitListValues) {
                _validationType = validationType;
                _operator = comparisonOperator;
                _formula1 = formulaA;
                _formula2 = formulaB;
                _value1 = value1;
                _value2 = value2;
-               _explicitListValues = (excplicitListValues == null) ? null : excplicitListValues.clone();
+               _explicitListValues = (explicitListValues == null) ? null : explicitListValues.clone();
        }
        
        
        /**
         * Creates a list constraint
         */
-       private DVConstraint(String listFormula, String[] excplicitListValues) {
+       private DVConstraint(String listFormula, String[] explicitListValues) {
                this(ValidationType.LIST, OperatorType.IGNORED,
-                       listFormula, null, null, null, excplicitListValues);
+                       listFormula, null, null, null, explicitListValues);
        }
 
        /**
@@ -228,7 +228,7 @@ public class DVConstraint implements DataValidationConstraint {
                        return null;
                }
                try {
-                       return new Double(numberStr);
+                       return Double.valueOf(numberStr);
                } catch (NumberFormatException e) {
                        throw new RuntimeException("The supplied text '" + numberStr 
                                        + "' could not be parsed as a number");
@@ -242,7 +242,7 @@ public class DVConstraint implements DataValidationConstraint {
                if (timeStr == null) {
                        return null;
                }
-               return new Double(HSSFDateUtil.convertTime(timeStr));
+               return Double.valueOf(HSSFDateUtil.convertTime(timeStr));
        }
        /**
         * @param dateFormat pass <code>null</code> for default YYYYMMDD
@@ -263,7 +263,7 @@ public class DVConstraint implements DataValidationConstraint {
                                                + "' using specified format '" + dateFormat + "'", e);
                        }
                }
-               return new Double(HSSFDateUtil.getExcelDate(dateVal));
+               return Double.valueOf(HSSFDateUtil.getExcelDate(dateVal));
        }
 
        public static DVConstraint createCustomFormulaConstraint(String formula) {
@@ -363,7 +363,7 @@ public class DVConstraint implements DataValidationConstraint {
         */
        public void setValue1(double value1) {
                _formula1 = null;
-               _value1 = new Double(value1);
+               _value1 = Double.valueOf(value1);
        }
 
        /**
@@ -377,7 +377,7 @@ public class DVConstraint implements DataValidationConstraint {
         */
        public void setValue2(double value2) {
                _formula2 = null;
-               _value2 = new Double(value2);
+               _value2 = Double.valueOf(value2);
        }
        
        /**
@@ -407,7 +407,7 @@ public class DVConstraint implements DataValidationConstraint {
                        // Some things like union and intersection are not allowed.
                }
                // explicit list was provided
-               StringBuffer sb = new StringBuffer(_explicitListValues.length * 16);
+               StringBuilder sb = new StringBuilder(_explicitListValues.length * 16);
                for (int i = 0; i < _explicitListValues.length; i++) {
                        if (i > 0) {
                                sb.append('\0'); // list delimiter is the nul char
@@ -484,7 +484,7 @@ public class DVConstraint implements DataValidationConstraint {
             if (_value == null) {
                 return null;
             }
-            return new Double(_value);
+            return Double.valueOf(_value);
         }
 
         public String string() {
index 994996ee575d59c85dcb11496cbd00d53130d222..52305578ba033ac5921c6a9caba7658907b0c68e 100644 (file)
@@ -62,9 +62,6 @@ import org.apache.poi.ss.util.CellReference;
  * create whatever style objects they need, caching those at the application level.
  * Thus this class only caches values needed for evaluation, not display.
  */
-/**
- *
- */
 public class EvaluationConditionalFormatRule implements Comparable<EvaluationConditionalFormatRule> {
 
     private final WorkbookEvaluator workbookEvaluator;
@@ -75,7 +72,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
     /* cached values */
     private final CellRangeAddress[] regions;
     /**
-     * Depending on the rule type, it may want to know about certain values in the region when evaluating {@link #matches(Cell)},
+     * Depending on the rule type, it may want to know about certain values in the region when evaluating {@link #matches(CellReference)},
      * such as top 10, unique, duplicate, average, etc.  This collection stores those if needed so they are not repeatedly calculated
      */
     private final Map<CellRangeAddress, Set<ValueAndFormat>> meaningfulRegionValues = new HashMap<>();
@@ -370,7 +367,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
         return comp;
     }
     /**
-     * @param cell needed for offsets from region anchor - may be null!
+     * @param ref needed for offsets from region anchor - may be null!
      * @param region for adjusting relative formulas
      * @return true/false using the same rules as Data Validation evaluations
      */
@@ -424,7 +421,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
                     final ConditionFilterData conf = rule.getFilterConfiguration();
                     
                     if (! conf.getBottom()) {
-                        Collections.sort(allValues, Collections.reverseOrder());
+                        allValues.sort(Collections.reverseOrder());
                     } else {
                         Collections.sort(allValues);
                     }
@@ -505,10 +502,10 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
                     }
 
                     final Set<ValueAndFormat> avgSet = new LinkedHashSet<>(1);
-                    avgSet.add(new ValueAndFormat(new Double(allValues.size() == 0 ? 0 : total / allValues.size()), null));
+                    avgSet.add(new ValueAndFormat(Double.valueOf(allValues.size() == 0 ? 0 : total / allValues.size()), null));
 
                     final double stdDev = allValues.size() <= 1 ? 0 : ((NumberEval) AggregateFunction.STDEV.evaluate(pop, 0, 0)).getNumberValue();
-                    avgSet.add(new ValueAndFormat(new Double(stdDev), null));
+                    avgSet.add(new ValueAndFormat(Double.valueOf(stdDev), null));
                     return avgSet;
                 }
             }));
@@ -527,9 +524,9 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
              * operator type
              */
             
-            Double comp = new Double(conf.getStdDev() > 0 ? (avg + (conf.getAboveAverage() ? 1 : -1) * stdDev * conf.getStdDev()) : avg) ;
+            Double comp = Double.valueOf(conf.getStdDev() > 0 ? (avg + (conf.getAboveAverage() ? 1 : -1) * stdDev * conf.getStdDev()) : avg) ;
             
-            OperatorEnum op = null;
+            final OperatorEnum op;
             if (conf.getAboveAverage()) {
                 if (conf.getEqualAverage()) {
                     op = OperatorEnum.GREATER_OR_EQUAL;
@@ -543,7 +540,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
                     op = OperatorEnum.LESS_THAN;
                 }
             }
-            return op != null && op.isValid(val, comp, null);
+            return op.isValid(val, comp, null);
         case CONTAINS_TEXT:
             // implemented both by a cfRule "text" attribute and a formula.  Use the formula.
             return checkFormula(ref, region);
@@ -625,7 +622,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
         if (cell != null) {
             final CellType type = cell.getCellType();
             if (type == CellType.NUMERIC || (type == CellType.FORMULA && cell.getCachedFormulaResultType() == CellType.NUMERIC) ) {
-                return new ValueAndFormat(new Double(cell.getNumericCellValue()), cell.getCellStyle().getDataFormatString());
+                return new ValueAndFormat(Double.valueOf(cell.getNumericCellValue()), cell.getCellStyle().getDataFormatString());
             } else if (type == CellType.STRING || (type == CellType.FORMULA && cell.getCachedFormulaResultType() == CellType.STRING) ) {
                 return new ValueAndFormat(cell.getStringCellValue(), cell.getCellStyle().getDataFormatString());
             } else if (type == CellType.BOOLEAN || (type == CellType.FORMULA && cell.getCachedFormulaResultType() == CellType.BOOLEAN) ) {
index f64f68755081b1d7d3ee707a12058b8c428774bb..c8b9b4dc521ab0c82774d8d07f7ef3e1f4c90807 100644 (file)
@@ -1670,7 +1670,7 @@ public final class FormulaParser {
         if (!isPositive) {
             value = -value;
         }
-        return new Double(value);
+        return Double.valueOf(value);
     }
 
     private Ptg parseNumber() {
index a4577bba0c31d4bec8af8b4576e8a1ebf88ae67b..2d49270d0d15ed319692859d90fffc1cae179253 100644 (file)
@@ -61,7 +61,7 @@ public final class ConstantValueParser {
                                in.readLong(); // 8 byte 'not used' field
                                return EMPTY_REPRESENTATION; 
                        case TYPE_NUMBER:
-                               return new Double(in.readDouble());
+                               return Double.valueOf(in.readDouble());
                        case TYPE_STRING:
                                return StringUtil.readUnicodeString(in);
                        case TYPE_BOOLEAN:
@@ -91,8 +91,8 @@ public final class ConstantValueParser {
        public static int getEncodedSize(Object[] values) {
                // start with one byte 'type' code for each value
                int result = values.length * 1;
-               for (int i = 0; i < values.length; i++) {
-                       result += getEncodedSize(values[i]);
+               for (Object value : values) {
+                       result += getEncodedSize(value);
                }
                return result;
        }
@@ -114,8 +114,8 @@ public final class ConstantValueParser {
        }
 
        public static void encode(LittleEndianOutput out, Object[] values) {
-               for (int i = 0; i < values.length; i++) {
-                       encodeSingleValue(out, values[i]);
+               for (Object value : values) {
+                       encodeSingleValue(out, value);
                }
        }
 
index fb285bc34c079d7d18e93d64975ea56040b08f56..8e26376a41f12284ccbb9d34d5942596ffe78648 100644 (file)
@@ -77,8 +77,8 @@ public final class Mode implements Function {
                double result;
                try {
                        List<Double> temp = new ArrayList<>();
-                       for (int i = 0; i < args.length; i++) {
-                               collectValues(args[i], temp);
+                       for (ValueEval arg : args) {
+                               collectValues(arg, temp);
                        }
                        double[] values = new double[temp.size()];
                        for (int i = 0; i < values.length; i++) {
@@ -129,7 +129,7 @@ public final class Mode implements Function {
                        return;
                }
                if (arg instanceof NumberEval) {
-                       temp.add(new Double(((NumberEval) arg).getNumberValue()));
+                       temp.add(Double.valueOf(((NumberEval) arg).getNumberValue()));
                        return;
                }
                throw new RuntimeException("Unexpected value type (" + arg.getClass().getName() + ")");
index cc9c2c79745bdfb9418fb6a7169d2035c7c466d2..a8fc2c228961b803f8186ab200127381eee50909 100644 (file)
@@ -216,7 +216,7 @@ public abstract class TextFunction implements Function {
                                return ErrorEval.VALUE_INVALID;
                        }
                        int len = text.length();
-                       if (numChars < 0 || startIx > len) {
+                       if (startIx > len) {
                                return new StringEval("");
                        }
                        int endIx = Math.min(startIx + numChars, len);
index a948ce65e30c7b8272e51d9435461879cb90392f..4280111b999d4643bfc582b2d73a6eeaaab0d382 100644 (file)
@@ -37,7 +37,7 @@ public final class Value extends Fixed1ArgFunction {
 
        /** "1,0000" is valid, "1,00" is not */
        private static final int MIN_DISTANCE_BETWEEN_THOUSANDS_SEPARATOR = 4;
-       private static final Double ZERO = new Double(0.0);
+       private static final Double ZERO = Double.valueOf(0.0);
 
        public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0) {
                ValueEval veText;
@@ -113,7 +113,7 @@ public final class Value extends Fixed1ArgFunction {
                boolean foundDecimalPoint = false;
                int lastThousandsSeparatorIndex = Short.MIN_VALUE;
 
-               StringBuffer sb = new StringBuffer(len);
+               StringBuilder sb = new StringBuilder(len);
                for (; i < len; i++) {
                        char ch = strText.charAt(i);
                        if (Character.isDigit(ch)) {
index 1df507f22f491fa6fd0897803e3858976f42bae6..8cba3dd29325808ba7b2776175e63e83f1d2c06f 100644 (file)
@@ -128,7 +128,7 @@ public class DataFormatter implements Observer {
     private static final Pattern daysAsText = Pattern.compile("([d]{3,})", Pattern.CASE_INSENSITIVE);
 
     /** Pattern to find "AM/PM" marker */
-    private static final Pattern amPmPattern = Pattern.compile("((A|P)[M/P]*)", Pattern.CASE_INSENSITIVE);
+    private static final Pattern amPmPattern = Pattern.compile("(([AP])[M/P]*)", Pattern.CASE_INSENSITIVE);
     
     /** Pattern to find formats with condition ranges e.g. [>=100] */
     private static final Pattern rangeConditionalPattern = Pattern.compile(".*\\[\\s*(>|>=|<|<=|=)\\s*[0-9]*\\.*[0-9].*");
@@ -843,7 +843,7 @@ public class DataFormatter implements Observer {
         if (numberFormat == null) {
             return String.valueOf(d);
         }
-        String formatted = numberFormat.format(new Double(d));
+        String formatted = numberFormat.format(Double.valueOf(d));
         return formatted.replaceFirst("E(\\d)", "E+$1"); // to match Excel's E-notation
     }
 
@@ -894,7 +894,7 @@ public class DataFormatter implements Observer {
         String result;
         final String textValue = NumberToTextConverter.toText(value);
         if (textValue.indexOf('E') > -1) {
-            result = numberFormat.format(new Double(value));
+            result = numberFormat.format(Double.valueOf(value));
         }
         else {
             result = numberFormat.format(new BigDecimal(textValue));
@@ -1296,4 +1296,4 @@ public class DataFormatter implements Observer {
             return null; // Not supported
         }
     }
-}
\ No newline at end of file
+}
index 203aabefa9478795ea41d48464d348b2915b32ba..82fef17e2410496acbd07f9773dcbaba5d3882e7 100644 (file)
@@ -192,6 +192,6 @@ public class ExcelStyleDateFormatter extends SimpleDateFormat {
     
     @Override
     public int hashCode() {
-        return new Double(dateToBeFormatted).hashCode();
+        return Double.valueOf(dateToBeFormatted).hashCode();
     }
 }
index 05073d21e6c205581993db28c938e7b87224688d..ee61027f70b2085209e0acd9e277961bb82821f0 100644 (file)
@@ -191,7 +191,7 @@ public class OOXMLSignatureFacet extends SignatureFacet {
             }
         }
         
-        Collections.sort(manifestReferences, new Comparator<Reference>() {
+        manifestReferences.sort(new Comparator<Reference>() {
             public int compare(Reference o1, Reference o2) {
                 return o1.getURI().compareTo(o2.getURI());
             }
index 71fb2322e6b0b96198c4d70233a428467db1dd5f..faa8cdd8d5d80bc40dc81e47191f050a9cc43cf4 100644 (file)
@@ -132,29 +132,25 @@ public class XSSFBHyperlinksTable {
                 return;
             }
             int offset = 0;
-            String relId = "";
-            String location = "";
-            String toolTip = "";
-            String display = "";
 
             hyperlinkCellRange = XSSFBCellRange.parse(data, offset, hyperlinkCellRange);
             offset += XSSFBCellRange.length;
             xlWideStringBuffer.setLength(0);
             offset += XSSFBUtils.readXLNullableWideString(data, offset, xlWideStringBuffer);
-            relId = xlWideStringBuffer.toString();
+            String relId = xlWideStringBuffer.toString();
             xlWideStringBuffer.setLength(0);
             offset += XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer);
-            location = xlWideStringBuffer.toString();
+            String location = xlWideStringBuffer.toString();
             xlWideStringBuffer.setLength(0);
             offset += XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer);
-            toolTip = xlWideStringBuffer.toString();
+            String toolTip = xlWideStringBuffer.toString();
             xlWideStringBuffer.setLength(0);
-            offset += XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer);
-            display = xlWideStringBuffer.toString();
+            /*offset +=*/ XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer);
+            String display = xlWideStringBuffer.toString();
             CellRangeAddress cellRangeAddress = new CellRangeAddress(hyperlinkCellRange.firstRow, hyperlinkCellRange.lastRow, hyperlinkCellRange.firstCol, hyperlinkCellRange.lastCol);
 
             String url = relIdToHyperlink.get(relId);
-            if (location == null || location.length() == 0) {
+            if (location.length() == 0) {
                 location = url;
             }
 
index a1872daeb2678fa78920341f9eb51c180b4d9aae..e3ac6d22a1396b89ecb89caf9ddc59c24fb78894 100644 (file)
@@ -167,9 +167,7 @@ public class XSSFBReader extends XSSFReader {
                     PackagePart commentsPart = sheetPkg.getPackage().getPart(commentsName);
                     return new XSSFBCommentsTable(commentsPart.getInputStream());
                 }
-            } catch (InvalidFormatException e) {
-                return null;
-            } catch (IOException e) {
+            } catch (InvalidFormatException | IOException e) {
                 return null;
             }
             return null;
@@ -241,7 +239,8 @@ public class XSSFBReader extends XSSFReader {
         private void tryToAddWorksheet(byte[] data) throws XSSFBParseException {
             int offset = 0;
             //this is the sheet state #2.5.142
-            long hsShtat = LittleEndian.getUInt(data, offset); offset += LittleEndian.INT_SIZE;
+            /*long hsShtat =*/ //noinspection ResultOfMethodCallIgnored
+            LittleEndian.getUInt(data, offset); offset += LittleEndian.INT_SIZE;
 
             long iTabID = LittleEndian.getUInt(data, offset); offset += LittleEndian.INT_SIZE;
             //according to #2.4.304
@@ -251,9 +250,9 @@ public class XSSFBReader extends XSSFReader {
             StringBuilder sb = new StringBuilder();
             offset += XSSFBUtils.readXLWideString(data, offset, sb);
             String relId = sb.toString(); sb.setLength(0);
-            offset += XSSFBUtils.readXLWideString(data, offset, sb);
+            /*offset +=*/ XSSFBUtils.readXLWideString(data, offset, sb);
             String name = sb.toString();
-            if (relId != null && relId.trim().length() > 0) {
+            if (relId.trim().length() > 0) {
                 sheets.add(new XSSFSheetRef(relId, name));
             }
         }
@@ -272,7 +271,7 @@ public class XSSFBReader extends XSSFReader {
             sb.setLength(0);
             offset += XSSFBUtils.readXLWideString(data, offset, sb);
             String name = sb.toString();
-            if (relId != null && relId.trim().length() > 0) {
+            if (relId.trim().length() > 0) {
                 sheets.add(new XSSFSheetRef(relId, name));
             }
             if (offset == data.length) {
@@ -285,4 +284,4 @@ public class XSSFBReader extends XSSFReader {
             return sheets;
         }
     }
-}
\ No newline at end of file
+}
index 4633df04347239b90a85373d743539e8d75fbd95..abeac1ca79971c1e5b92f1f259c0f8fb57e3af97 100644 (file)
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
@@ -147,7 +146,7 @@ public class XSSFExportToXml implements Comparator<String>{
             tableMappings.put(commonXPath, table);
         }
 
-        Collections.sort(xpaths,this);
+        xpaths.sort(this);
 
         for(String xpath : xpaths) {
 
index a98a556274b129dee6d3b91447443b70e36b3ad4..3a272a0677e49cd423575d2f01552f67b0cd107c 100644 (file)
@@ -256,6 +256,7 @@ public class XSSFComment implements Comment {
         // There is a very odd xmlbeans bug when changing the row
         //  arrays which can lead to corrupt pointer
         // This call seems to fix them again... See bug #50795
+        //noinspection ResultOfMethodCallIgnored
         vmlShape.getClientDataList().toString();
     }
 }
index b33de42577f98d591f9b0f0a45f279451863801e..160794e5dc0c0e1b42da42b4ffd7014af14f0032 100644 (file)
@@ -74,7 +74,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
         for (CTCell c : row.getCArray()) {
             XSSFCell cell = new XSSFCell(this, c);
             // Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-            final Integer colI = new Integer(cell.getColumnIndex()); // NOSONAR
+            final Integer colI = Integer.valueOf(cell.getColumnIndex()); // NOSONAR
             _cells.put(colI, cell);
             sheet.onReadCell(cell);
         }
@@ -230,7 +230,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
     @Override
     public XSSFCell createCell(int columnIndex, CellType type) {
         // Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-        final Integer colI = new Integer(columnIndex); // NOSONAR
+        final Integer colI = Integer.valueOf(columnIndex); // NOSONAR
         CTCell ctCell;
         XSSFCell prev = _cells.get(colI);
         if(prev != null){
@@ -270,7 +270,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
        if(cellnum < 0) throw new IllegalArgumentException("Cell index must be >= 0");
 
         // Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-       final Integer colI = new Integer(cellnum); // NOSONAR
+       final Integer colI = Integer.valueOf(cellnum); // NOSONAR
         XSSFCell cell = _cells.get(colI);
         switch (policy) {
             case RETURN_NULL_AND_BLANK:
@@ -500,7 +500,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
            _sheet.getWorkbook().onDeleteFormula(xcell);
         }
         // Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-        final Integer colI = new Integer(cell.getColumnIndex()); // NOSONAR
+        final Integer colI = Integer.valueOf(cell.getColumnIndex()); // NOSONAR
         _cells.remove(colI);
     }
 
index ccac2cc4744c43799bf6213c5651b65b84d00d29..cef6ae3fbebcce31957af80bea719ba3500264ab 100644 (file)
@@ -266,7 +266,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
         for (CTRow row : worksheetParam.getSheetData().getRowArray()) {
             XSSFRow r = new XSSFRow(row, this);
             // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-            final Integer rownumI = new Integer(r.getRowNum()); // NOSONAR
+            final Integer rownumI = Integer.valueOf(r.getRowNum()); // NOSONAR
             _rows.put(rownumI, r);
         }
     }
@@ -751,7 +751,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
     @Override
     public XSSFRow createRow(int rownum) {
         // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-        final Integer rownumI = new Integer(rownum); // NOSONAR
+        final Integer rownumI = Integer.valueOf(rownum); // NOSONAR
         CTRow ctRow;
         XSSFRow prev = _rows.get(rownumI);
         if(prev != null){
@@ -1448,7 +1448,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
     @Override
     public XSSFRow getRow(int rownum) {
         // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-        final Integer rownumI = new Integer(rownum); // NOSONAR
+        final Integer rownumI = Integer.valueOf(rownum); // NOSONAR
         return _rows.get(rownumI);
     }
     
@@ -1479,8 +1479,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
         }
         else {
             // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-            final Integer startI = new Integer(startRowNum); // NOSONAR
-            final Integer endI = new Integer(endRowNum+1); // NOSONAR
+            final Integer startI = Integer.valueOf(startRowNum); // NOSONAR
+            final Integer endI = Integer.valueOf(endRowNum+1); // NOSONAR
             final Collection<XSSFRow> inclusive = _rows.subMap(startI, endI).values();
             rows.addAll(inclusive);
         }
@@ -1982,7 +1982,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
 
         // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
         final int rowNum = row.getRowNum();
-        final Integer rowNumI = new Integer(rowNum); // NOSONAR
+        final Integer rowNumI = Integer.valueOf(rowNum); // NOSONAR
         // this is not the physical row number!
         final int idx = _rows.headMap(rowNumI).size();
         _rows.remove(rowNumI);
@@ -2994,7 +2994,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
             if (shouldRemoveRow(startRow, endRow, n, rownum)) {
                 // remove row from worksheet.getSheetData row array
                 // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-                final Integer rownumI = new Integer(row.getRowNum()); // NOSONAR
+                final Integer rownumI = Integer.valueOf(row.getRowNum()); // NOSONAR
                 int idx = _rows.headMap(rownumI).size();
                 worksheet.getSheetData().removeRow(idx);
 
@@ -3118,7 +3118,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
         Map<Integer, XSSFRow> map = new HashMap<>();
         for(XSSFRow r : _rows.values()) {
             // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-            final Integer rownumI = new Integer(r.getRowNum()); // NOSONAR
+            final Integer rownumI = Integer.valueOf(r.getRowNum()); // NOSONAR
             map.put(rownumI, r);
         }
         _rows.clear();
index be8831e8a97c99918517569b1a29b39b89b11f39..43f36c74ce8a5793c8016fd1439c1d2aa14413bb 100644 (file)
@@ -146,7 +146,7 @@ public class XWPFTable implements IBodyElement, ISDTContents {
          * CTTblGrid tblgrid=table.addNewTblGrid();
          * tblgrid.addNewGridCol().setW(new BigInteger("2000"));
          */
-        getRows();
+        //getRows();
     }
 
     /**
index 0355a441a150b8e63d9306a91b7fead51bc7caf1..50ffd60edc0a7cb2dce94b028a769a9f71436b15 100644 (file)
         <Bug pattern="DM_NUMBER_CTOR" />
     </Match>
 
+       <!-- On purpose -->
+    <Match>
+        <Or>
+            <Class name="org.apache.poi.xssf.usermodel.XSSFComment"/>
+        </Or>
+        <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" />
+    </Match>
 
 </FindBugsFilter>
index bb3ef91b38413c0a9a049f42dcd53b2a77deffb7..3224efa29ea2d0b849fb589add7e59c3d2d0960a 100644 (file)
@@ -137,7 +137,7 @@ public final class Chunk {
                                command = new Command(cdef);
                        }
 
-                       // Bizarely, many of the offsets are from the start of the
+                       // Bizarrely, many of the offsets are from the start of the
                        //  header, not from the start of the chunk body
                        switch(type) {
                        case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
@@ -172,7 +172,7 @@ public final class Chunk {
                                        command.value = Byte.valueOf(contents[offset]);
                                        break;
                                case 9:
-                                       command.value = new Double(
+                                       command.value = Double.valueOf(
                                                        LittleEndian.getDouble(contents, offset)
                                        );
                                        break;
index 663b8061476b54bbe6963fc1151741d04ce29df6..6cb05b30fb6056e3e5e4ff5829df97ea9ef98e43 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.hsmf.dev;
 
 import java.io.PrintStream;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Comparator;
 
 import org.apache.poi.hsmf.datatypes.MAPIProperty;
@@ -32,19 +31,19 @@ public class TypesLister {
    
    public void listByName(PrintStream out) {
       ArrayList<MAPIProperty> all = new ArrayList<>(MAPIProperty.getAll());
-      Collections.sort(all, new Comparator<MAPIProperty>() {
-         public int compare(MAPIProperty a, MAPIProperty b) {
-            return a.name.compareTo(b.name);
-         }
+      all.sort(new Comparator<MAPIProperty>() {
+          public int compare(MAPIProperty a, MAPIProperty b) {
+              return a.name.compareTo(b.name);
+          }
       });
       list(all, out);
    }
    public void listById(PrintStream out) {
       ArrayList<MAPIProperty> all = new ArrayList<>(MAPIProperty.getAll());
-      Collections.sort(all, new Comparator<MAPIProperty>() {
-         public int compare(MAPIProperty a, MAPIProperty b) {
-             return Integer.compare(a.id, b.id);
-         }
+      all.sort(new Comparator<MAPIProperty>() {
+          public int compare(MAPIProperty a, MAPIProperty b) {
+              return Integer.compare(a.id, b.id);
+          }
       });
       list(all, out);
    }
index 7faba49700a5241ebc3b9bffd5a2760608ad8304..5a5b5a5c100f98e70fd86dc7e5d0abdac65d952e 100644 (file)
@@ -172,8 +172,7 @@ public class CHPBinTable
         }
 
         List<CHPX> oldChpxSortedByStartPos = new ArrayList<>(_textRuns);
-        Collections.sort( oldChpxSortedByStartPos,
-                PropertyNode.StartComparator.instance );
+        oldChpxSortedByStartPos.sort(PropertyNode.StartComparator.instance);
 
         logger.log( POILogger.DEBUG, "CHPX sorted by start position in ",
                 Long.valueOf( System.currentTimeMillis() - start ), " ms" );
@@ -278,7 +277,7 @@ public class CHPBinTable
                 }
             }
 
-            Collections.sort( chpxs, chpxFileOrderComparator );
+            chpxs.sort(chpxFileOrderComparator);
 
             SprmBuffer sprmBuffer = new SprmBuffer( 0 );
             for ( CHPX chpx : chpxs )
index 45061ad65b80eeb2d781b7a8d8380f9089c2590c..dc57b4c13b321e77e31f06dff3220b77a44c2695 100644 (file)
@@ -17,8 +17,6 @@
 
 package org.apache.poi.hwpf.model;
 
-import java.util.Collections;
-
 import org.apache.poi.poifs.common.POIFSConstants;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
@@ -65,6 +63,6 @@ public final class OldCHPBinTable extends CHPBinTable
                     _textRuns.add( chpx );
             }
     }
-    Collections.sort( _textRuns, PropertyNode.StartComparator.instance );
+    _textRuns.sort(PropertyNode.StartComparator.instance);
   }
 }
index 84a02edfd0eaa8be670d852188f4a061684125af..df5d32d8120a3f4637b663902cdb9c9136147350 100644 (file)
@@ -17,8 +17,6 @@
 
 package org.apache.poi.hwpf.model;
 
-import java.util.Collections;
-
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
@@ -81,6 +79,6 @@ public final class OldSectionTable extends SectionTable
 
             _sections.add( sepx );
     }
-    Collections.sort( _sections, PropertyNode.StartComparator.instance );
+    _sections.sort(PropertyNode.StartComparator.instance);
   }
 }
index 04c41a3087ddd4692110ae863c72dbc72ac96be5..701c7939969da6687c827efe186084b0af7a5280 100644 (file)
@@ -23,16 +23,9 @@ import java.util.Collections;
 import org.apache.poi.util.CodePageUtil;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-
 
 @Internal
 public class OldTextPieceTable extends TextPieceTable {
-
-    private static final POILogger logger = POILogFactory
-            .getLogger(OldTextPieceTable.class);
-
     //arbitrarily selected; may need to increase
     private static final int MAX_RECORD_LENGTH = 100_000_000;
 
@@ -103,7 +96,7 @@ public class OldTextPieceTable extends TextPieceTable {
         // into order, if they're not already
         Collections.sort(_textPieces);
         _textPiecesFCOrder = new ArrayList<>(_textPieces);
-        Collections.sort(_textPiecesFCOrder, new FCComparator());
+        _textPiecesFCOrder.sort(new FCComparator());
 
     }
 
index 5d186f3d55f0d5478656d8d59e5b512a97cdf678..3819d0331cde3d359d3a0d2430e5c7b8a0974082 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.poi.hwpf.model;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.IdentityHashMap;
 import java.util.LinkedList;
@@ -159,8 +158,7 @@ public class PAPBinTable
         }
 
         List<PAPX> oldPapxSortedByEndPos = new ArrayList<>(paragraphs);
-        Collections.sort( oldPapxSortedByEndPos,
-                PropertyNode.EndComparator.instance );
+        oldPapxSortedByEndPos.sort(PropertyNode.EndComparator.instance);
 
         logger.log( POILogger.DEBUG, "PAPX sorted by end position in ",
                 Long.valueOf( System.currentTimeMillis() - start ), " ms" );
@@ -255,7 +253,7 @@ public class PAPBinTable
             }
 
             // restore file order of PAPX
-            Collections.sort( papxs, papxFileOrderComparator );
+            papxs.sort(papxFileOrderComparator);
 
             SprmBuffer sprmBuffer = null;
             for ( PAPX papx : papxs )
@@ -281,7 +279,6 @@ public class PAPBinTable
         logger.log( POILogger.DEBUG, "PAPX rebuilded from document text in ",
                 Long.valueOf( System.currentTimeMillis() - start ), " ms (",
                 Integer.valueOf( paragraphs.size() ), " elements)" );
-        start = System.currentTimeMillis();
     }
 
     public void insert(int listIndex, int cpStart, SprmBuffer buf)
index 670554ddefe2fb886c62d25ce90f475856bc87c2..94c1e8e2fecdb362b32764241872e9dc74b33078 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.poi.hwpf.model;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
@@ -96,11 +95,10 @@ public class SectionTable
         //    is getting on for black magic...
         boolean matchAt = false;
         boolean matchHalf = false;
-        for (int i=0; i<_sections.size(); i++) {
-            SEPX s = _sections.get(i);
+        for (SEPX s : _sections) {
             if (s.getEnd() == mainLength) {
                 matchAt = true;
-            } else if(s.getEnd() == mainLength || s.getEnd() == mainLength -1) {
+            } else if (s.getEnd() == mainLength || s.getEnd() == mainLength - 1) {
                 matchHalf = true;
             }
         }
@@ -119,7 +117,7 @@ public class SectionTable
             }
         }
 
-        Collections.sort( _sections, PropertyNode.StartComparator.instance );
+        _sections.sort(PropertyNode.StartComparator.instance);
     }
 
     public void adjustForInsert(int listIndex, int length)
@@ -187,15 +185,13 @@ public class SectionTable
         int len = _sections.size();
         PlexOfCps plex = new PlexOfCps(SED_SIZE);
 
-        for (int x = 0; x < len; x++)
-        {
-            SEPX sepx = _sections.get(x);
+        for (SEPX sepx : _sections) {
             byte[] grpprl = sepx.getGrpprl();
 
             // write the sepx to the document stream. starts with a 2 byte size
             // followed by the grpprl
             byte[] shortBuf = new byte[2];
-            LittleEndian.putShort(shortBuf, 0, (short)grpprl.length);
+            LittleEndian.putShort(shortBuf, 0, (short) grpprl.length);
 
             wordDocumentStream.write(shortBuf);
             wordDocumentStream.write(grpprl);
@@ -208,7 +204,7 @@ public class SectionTable
 
             /* original line */
             GenericPropertyNode property = new GenericPropertyNode(
-                            sepx.getStart(), sepx.getEnd(), sed.toByteArray() );
+                    sepx.getStart(), sepx.getEnd(), sed.toByteArray());
             /*
              * Line using Ryan's FCtoCP() conversion method - unable to observe
              * any effect on our testcases when using this code - piers
index 80609bdad1126500b8929a228f750d8ff6825168..9ed1aa497a7baa14f44d9a2bd846b0314989d1aa 100644 (file)
@@ -115,7 +115,7 @@ public class TextPieceTable implements CharIndexTranslator {
         // into order, if they're not already
         Collections.sort(_textPieces);
         _textPiecesFCOrder = new ArrayList<>(_textPieces);
-        Collections.sort(_textPiecesFCOrder, new FCComparator());
+        _textPiecesFCOrder.sort(new FCComparator());
     }
 
     protected TextPiece newTextPiece(int nodeStartChars, int nodeEndChars, byte[] buf, PieceDescriptor pd) {
@@ -126,7 +126,7 @@ public class TextPieceTable implements CharIndexTranslator {
         _textPieces.add(piece);
         _textPiecesFCOrder.add(piece);
         Collections.sort(_textPieces);
-        Collections.sort(_textPiecesFCOrder, new FCComparator());
+        _textPiecesFCOrder.sort(new FCComparator());
     }
 
     /**
index 7f466b4885665666b24cd68d9f5849d6f1c69b7b..8a80a743e55e7baf891d50b5e302034347a34641 100644 (file)
@@ -248,7 +248,7 @@ public class BookmarksImpl implements Bookmarks
             indices[counter++] = entry.getKey().intValue();
             List<GenericPropertyNode> updated = new ArrayList<>(
                     entry.getValue());
-            Collections.sort( updated, PropertyNode.EndComparator.instance );
+            updated.sort(PropertyNode.EndComparator.instance);
             entry.setValue( updated );
         }
         Arrays.sort( indices );
index 90a629235b2b672c562470a729a9b8d2fa77ab3f..e7c60e936cc50067ea38a25057749d34d730d387 100644 (file)
@@ -43,7 +43,7 @@ public class FieldsImpl implements Fields
      * This is port and adaptation of Arrays.binarySearch from Java 6 (Apache
      * Harmony).
      */
-    private static <T> int binarySearch( List<PlexOfField> list,
+    private static int binarySearch( List<PlexOfField> list,
             int startIndex, int endIndex, int requiredStartOffset )
     {
         checkIndexForBinarySearch( list.size(), startIndex, endIndex );
@@ -136,7 +136,7 @@ public class FieldsImpl implements Fields
         if ( plexOfFields == null || plexOfFields.isEmpty() )
             return new HashMap<>();
 
-        Collections.sort( plexOfFields, comparator );
+        plexOfFields.sort(comparator);
         List<FieldImpl> fields = new ArrayList<>(
                 plexOfFields.size() / 3 + 1);
         parseFieldStructureImpl( plexOfFields, 0, plexOfFields.size(), fields );