Fix some findbugs-issues and apply some code-cleanup and apply some smaller pull requests.

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
This commit is contained in:
Dominik Stadler 2017-10-13 09:40:22 +00:00
parent 887ec868b7
commit bc7d79a613
33 changed files with 110 additions and 138 deletions

View File

@ -17,7 +17,6 @@
package org.apache.poi.ddf; package org.apache.poi.ddf;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -135,16 +134,14 @@ public abstract class AbstractEscherOptRecord extends EscherRecord
*/ */
public void sortProperties() public void sortProperties()
{ {
Collections.sort( properties, new Comparator<EscherProperty>() properties.sort(new Comparator<EscherProperty>() {
{
@Override @Override
public int compare( EscherProperty p1, EscherProperty p2 ) public int compare(EscherProperty p1, EscherProperty p2) {
{
short s1 = p1.getPropertyNumber(); short s1 = p1.getPropertyNumber();
short s2 = p2.getPropertyNumber(); short s2 = p2.getPropertyNumber();
return Short.compare(s1, s2); return Short.compare(s1, s2);
} }
} ); });
} }
/** /**

View File

@ -20,7 +20,6 @@ package org.apache.poi.ddf;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.BitSet; import java.util.BitSet;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
@ -260,7 +259,7 @@ public final class EscherDggRecord extends EscherRecord {
} }
private void sortCluster() { private void sortCluster() {
Collections.sort(field_5_fileIdClusters, new Comparator<FileIdCluster>() { field_5_fileIdClusters.sort(new Comparator<FileIdCluster>() {
@Override @Override
public int compare(FileIdCluster f1, FileIdCluster f2) { public int compare(FileIdCluster f1, FileIdCluster f2) {
int dgDif = f1.getDrawingGroupId() - f2.getDrawingGroupId(); int dgDif = f1.getDrawingGroupId() - f2.getDrawingGroupId();

View File

@ -420,7 +420,7 @@ public class Variant
} }
name += numberToName.get(vt); name += numberToName.get(vt);
return (name != null && !"".equals(name)) ? name : "unknown variant type"; return !"".equals(name) ? name : "unknown variant type";
} }
/** /**

View File

@ -18,7 +18,6 @@
package org.apache.poi.hssf.record.aggregates; package org.apache.poi.hssf.record.aggregates;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
@ -71,7 +70,7 @@ public final class ColumnInfoRecordsAggregate extends RecordAggregate implements
throw new RuntimeException("No column info records found"); throw new RuntimeException("No column info records found");
} }
if (!isInOrder) { 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) { public void insertColumn(ColumnInfoRecord col) {
records.add(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; return;
} }
ColumnInfoRecord cirPrev = null; ColumnInfoRecord cirPrev = null;
for(int i=0; i<nItems; i++) { for (ColumnInfoRecord cir : records) {
ColumnInfoRecord cir = records.get(i);
rv.visitRecord(cir); rv.visitRecord(cir);
if (cirPrev != null && CIRComparator.compareColInfos(cirPrev, cir) > 0) { if (cirPrev != null && CIRComparator.compareColInfos(cirPrev, cir) > 0) {
// Excel probably wouldn't mind, but there is much logic in this class // 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, public void setColumn(int targetColumnIx, Short xfIndex, Integer width,
Integer level, Boolean hidden, Boolean collapsed) { Integer level, Boolean hidden, Boolean collapsed) {
ColumnInfoRecord ci = null; ColumnInfoRecord ci = null;
int k = 0; int k;
for (k = 0; k < records.size(); k++) { for (k = 0; k < records.size(); k++) {
ColumnInfoRecord tci = records.get(k); ColumnInfoRecord tci = records.get(k);
if (tci.containsColumn(targetColumnIx)) { if (tci.containsColumn(targetColumnIx)) {

View File

@ -66,23 +66,23 @@ public class DVConstraint implements DataValidationConstraint {
private DVConstraint(int validationType, int comparisonOperator, String formulaA, 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; _validationType = validationType;
_operator = comparisonOperator; _operator = comparisonOperator;
_formula1 = formulaA; _formula1 = formulaA;
_formula2 = formulaB; _formula2 = formulaB;
_value1 = value1; _value1 = value1;
_value2 = value2; _value2 = value2;
_explicitListValues = (excplicitListValues == null) ? null : excplicitListValues.clone(); _explicitListValues = (explicitListValues == null) ? null : explicitListValues.clone();
} }
/** /**
* Creates a list constraint * Creates a list constraint
*/ */
private DVConstraint(String listFormula, String[] excplicitListValues) { private DVConstraint(String listFormula, String[] explicitListValues) {
this(ValidationType.LIST, OperatorType.IGNORED, 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; return null;
} }
try { try {
return new Double(numberStr); return Double.valueOf(numberStr);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
throw new RuntimeException("The supplied text '" + numberStr throw new RuntimeException("The supplied text '" + numberStr
+ "' could not be parsed as a number"); + "' could not be parsed as a number");
@ -242,7 +242,7 @@ public class DVConstraint implements DataValidationConstraint {
if (timeStr == null) { if (timeStr == null) {
return null; return null;
} }
return new Double(HSSFDateUtil.convertTime(timeStr)); return Double.valueOf(HSSFDateUtil.convertTime(timeStr));
} }
/** /**
* @param dateFormat pass <code>null</code> for default YYYYMMDD * @param dateFormat pass <code>null</code> for default YYYYMMDD
@ -263,7 +263,7 @@ public class DVConstraint implements DataValidationConstraint {
+ "' using specified format '" + dateFormat + "'", e); + "' using specified format '" + dateFormat + "'", e);
} }
} }
return new Double(HSSFDateUtil.getExcelDate(dateVal)); return Double.valueOf(HSSFDateUtil.getExcelDate(dateVal));
} }
public static DVConstraint createCustomFormulaConstraint(String formula) { public static DVConstraint createCustomFormulaConstraint(String formula) {
@ -363,7 +363,7 @@ public class DVConstraint implements DataValidationConstraint {
*/ */
public void setValue1(double value1) { public void setValue1(double value1) {
_formula1 = null; _formula1 = null;
_value1 = new Double(value1); _value1 = Double.valueOf(value1);
} }
/** /**
@ -377,7 +377,7 @@ public class DVConstraint implements DataValidationConstraint {
*/ */
public void setValue2(double value2) { public void setValue2(double value2) {
_formula2 = null; _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. // Some things like union and intersection are not allowed.
} }
// explicit list was provided // 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++) { for (int i = 0; i < _explicitListValues.length; i++) {
if (i > 0) { if (i > 0) {
sb.append('\0'); // list delimiter is the nul char sb.append('\0'); // list delimiter is the nul char
@ -484,7 +484,7 @@ public class DVConstraint implements DataValidationConstraint {
if (_value == null) { if (_value == null) {
return null; return null;
} }
return new Double(_value); return Double.valueOf(_value);
} }
public String string() { public String string() {

View File

@ -62,9 +62,6 @@ import org.apache.poi.ss.util.CellReference;
* create whatever style objects they need, caching those at the application level. * create whatever style objects they need, caching those at the application level.
* Thus this class only caches values needed for evaluation, not display. * Thus this class only caches values needed for evaluation, not display.
*/ */
/**
*
*/
public class EvaluationConditionalFormatRule implements Comparable<EvaluationConditionalFormatRule> { public class EvaluationConditionalFormatRule implements Comparable<EvaluationConditionalFormatRule> {
private final WorkbookEvaluator workbookEvaluator; private final WorkbookEvaluator workbookEvaluator;
@ -75,7 +72,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
/* cached values */ /* cached values */
private final CellRangeAddress[] regions; 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 * 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<>(); private final Map<CellRangeAddress, Set<ValueAndFormat>> meaningfulRegionValues = new HashMap<>();
@ -370,7 +367,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
return comp; 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 * @param region for adjusting relative formulas
* @return true/false using the same rules as Data Validation evaluations * @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(); final ConditionFilterData conf = rule.getFilterConfiguration();
if (! conf.getBottom()) { if (! conf.getBottom()) {
Collections.sort(allValues, Collections.reverseOrder()); allValues.sort(Collections.reverseOrder());
} else { } else {
Collections.sort(allValues); Collections.sort(allValues);
} }
@ -505,10 +502,10 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
} }
final Set<ValueAndFormat> avgSet = new LinkedHashSet<>(1); 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(); 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; return avgSet;
} }
})); }));
@ -527,9 +524,9 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
* operator type * 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.getAboveAverage()) {
if (conf.getEqualAverage()) { if (conf.getEqualAverage()) {
op = OperatorEnum.GREATER_OR_EQUAL; op = OperatorEnum.GREATER_OR_EQUAL;
@ -543,7 +540,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
op = OperatorEnum.LESS_THAN; op = OperatorEnum.LESS_THAN;
} }
} }
return op != null && op.isValid(val, comp, null); return op.isValid(val, comp, null);
case CONTAINS_TEXT: case CONTAINS_TEXT:
// implemented both by a cfRule "text" attribute and a formula. Use the formula. // implemented both by a cfRule "text" attribute and a formula. Use the formula.
return checkFormula(ref, region); return checkFormula(ref, region);
@ -625,7 +622,7 @@ public class EvaluationConditionalFormatRule implements Comparable<EvaluationCon
if (cell != null) { if (cell != null) {
final CellType type = cell.getCellType(); final CellType type = cell.getCellType();
if (type == CellType.NUMERIC || (type == CellType.FORMULA && cell.getCachedFormulaResultType() == CellType.NUMERIC) ) { 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) ) { } else if (type == CellType.STRING || (type == CellType.FORMULA && cell.getCachedFormulaResultType() == CellType.STRING) ) {
return new ValueAndFormat(cell.getStringCellValue(), cell.getCellStyle().getDataFormatString()); return new ValueAndFormat(cell.getStringCellValue(), cell.getCellStyle().getDataFormatString());
} else if (type == CellType.BOOLEAN || (type == CellType.FORMULA && cell.getCachedFormulaResultType() == CellType.BOOLEAN) ) { } else if (type == CellType.BOOLEAN || (type == CellType.FORMULA && cell.getCachedFormulaResultType() == CellType.BOOLEAN) ) {

View File

@ -1670,7 +1670,7 @@ public final class FormulaParser {
if (!isPositive) { if (!isPositive) {
value = -value; value = -value;
} }
return new Double(value); return Double.valueOf(value);
} }
private Ptg parseNumber() { private Ptg parseNumber() {

View File

@ -61,7 +61,7 @@ public final class ConstantValueParser {
in.readLong(); // 8 byte 'not used' field in.readLong(); // 8 byte 'not used' field
return EMPTY_REPRESENTATION; return EMPTY_REPRESENTATION;
case TYPE_NUMBER: case TYPE_NUMBER:
return new Double(in.readDouble()); return Double.valueOf(in.readDouble());
case TYPE_STRING: case TYPE_STRING:
return StringUtil.readUnicodeString(in); return StringUtil.readUnicodeString(in);
case TYPE_BOOLEAN: case TYPE_BOOLEAN:
@ -91,8 +91,8 @@ public final class ConstantValueParser {
public static int getEncodedSize(Object[] values) { public static int getEncodedSize(Object[] values) {
// start with one byte 'type' code for each value // start with one byte 'type' code for each value
int result = values.length * 1; int result = values.length * 1;
for (int i = 0; i < values.length; i++) { for (Object value : values) {
result += getEncodedSize(values[i]); result += getEncodedSize(value);
} }
return result; return result;
} }
@ -114,8 +114,8 @@ public final class ConstantValueParser {
} }
public static void encode(LittleEndianOutput out, Object[] values) { public static void encode(LittleEndianOutput out, Object[] values) {
for (int i = 0; i < values.length; i++) { for (Object value : values) {
encodeSingleValue(out, values[i]); encodeSingleValue(out, value);
} }
} }

View File

@ -77,8 +77,8 @@ public final class Mode implements Function {
double result; double result;
try { try {
List<Double> temp = new ArrayList<>(); List<Double> temp = new ArrayList<>();
for (int i = 0; i < args.length; i++) { for (ValueEval arg : args) {
collectValues(args[i], temp); collectValues(arg, temp);
} }
double[] values = new double[temp.size()]; double[] values = new double[temp.size()];
for (int i = 0; i < values.length; i++) { for (int i = 0; i < values.length; i++) {
@ -129,7 +129,7 @@ public final class Mode implements Function {
return; return;
} }
if (arg instanceof NumberEval) { if (arg instanceof NumberEval) {
temp.add(new Double(((NumberEval) arg).getNumberValue())); temp.add(Double.valueOf(((NumberEval) arg).getNumberValue()));
return; return;
} }
throw new RuntimeException("Unexpected value type (" + arg.getClass().getName() + ")"); throw new RuntimeException("Unexpected value type (" + arg.getClass().getName() + ")");

View File

@ -216,7 +216,7 @@ public abstract class TextFunction implements Function {
return ErrorEval.VALUE_INVALID; return ErrorEval.VALUE_INVALID;
} }
int len = text.length(); int len = text.length();
if (numChars < 0 || startIx > len) { if (startIx > len) {
return new StringEval(""); return new StringEval("");
} }
int endIx = Math.min(startIx + numChars, len); int endIx = Math.min(startIx + numChars, len);

View File

@ -37,7 +37,7 @@ public final class Value extends Fixed1ArgFunction {
/** "1,0000" is valid, "1,00" is not */ /** "1,0000" is valid, "1,00" is not */
private static final int MIN_DISTANCE_BETWEEN_THOUSANDS_SEPARATOR = 4; 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) { public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0) {
ValueEval veText; ValueEval veText;
@ -113,7 +113,7 @@ public final class Value extends Fixed1ArgFunction {
boolean foundDecimalPoint = false; boolean foundDecimalPoint = false;
int lastThousandsSeparatorIndex = Short.MIN_VALUE; int lastThousandsSeparatorIndex = Short.MIN_VALUE;
StringBuffer sb = new StringBuffer(len); StringBuilder sb = new StringBuilder(len);
for (; i < len; i++) { for (; i < len; i++) {
char ch = strText.charAt(i); char ch = strText.charAt(i);
if (Character.isDigit(ch)) { if (Character.isDigit(ch)) {

View File

@ -128,7 +128,7 @@ public class DataFormatter implements Observer {
private static final Pattern daysAsText = Pattern.compile("([d]{3,})", Pattern.CASE_INSENSITIVE); private static final Pattern daysAsText = Pattern.compile("([d]{3,})", Pattern.CASE_INSENSITIVE);
/** Pattern to find "AM/PM" marker */ /** 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] */ /** Pattern to find formats with condition ranges e.g. [>=100] */
private static final Pattern rangeConditionalPattern = Pattern.compile(".*\\[\\s*(>|>=|<|<=|=)\\s*[0-9]*\\.*[0-9].*"); 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) { if (numberFormat == null) {
return String.valueOf(d); 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 return formatted.replaceFirst("E(\\d)", "E+$1"); // to match Excel's E-notation
} }
@ -894,7 +894,7 @@ public class DataFormatter implements Observer {
String result; String result;
final String textValue = NumberToTextConverter.toText(value); final String textValue = NumberToTextConverter.toText(value);
if (textValue.indexOf('E') > -1) { if (textValue.indexOf('E') > -1) {
result = numberFormat.format(new Double(value)); result = numberFormat.format(Double.valueOf(value));
} }
else { else {
result = numberFormat.format(new BigDecimal(textValue)); result = numberFormat.format(new BigDecimal(textValue));
@ -1296,4 +1296,4 @@ public class DataFormatter implements Observer {
return null; // Not supported return null; // Not supported
} }
} }
} }

View File

@ -192,6 +192,6 @@ public class ExcelStyleDateFormatter extends SimpleDateFormat {
@Override @Override
public int hashCode() { public int hashCode() {
return new Double(dateToBeFormatted).hashCode(); return Double.valueOf(dateToBeFormatted).hashCode();
} }
} }

View 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) { public int compare(Reference o1, Reference o2) {
return o1.getURI().compareTo(o2.getURI()); return o1.getURI().compareTo(o2.getURI());
} }

View File

@ -132,29 +132,25 @@ public class XSSFBHyperlinksTable {
return; return;
} }
int offset = 0; int offset = 0;
String relId = "";
String location = "";
String toolTip = "";
String display = "";
hyperlinkCellRange = XSSFBCellRange.parse(data, offset, hyperlinkCellRange); hyperlinkCellRange = XSSFBCellRange.parse(data, offset, hyperlinkCellRange);
offset += XSSFBCellRange.length; offset += XSSFBCellRange.length;
xlWideStringBuffer.setLength(0); xlWideStringBuffer.setLength(0);
offset += XSSFBUtils.readXLNullableWideString(data, offset, xlWideStringBuffer); offset += XSSFBUtils.readXLNullableWideString(data, offset, xlWideStringBuffer);
relId = xlWideStringBuffer.toString(); String relId = xlWideStringBuffer.toString();
xlWideStringBuffer.setLength(0); xlWideStringBuffer.setLength(0);
offset += XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer); offset += XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer);
location = xlWideStringBuffer.toString(); String location = xlWideStringBuffer.toString();
xlWideStringBuffer.setLength(0); xlWideStringBuffer.setLength(0);
offset += XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer); offset += XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer);
toolTip = xlWideStringBuffer.toString(); String toolTip = xlWideStringBuffer.toString();
xlWideStringBuffer.setLength(0); xlWideStringBuffer.setLength(0);
offset += XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer); /*offset +=*/ XSSFBUtils.readXLWideString(data, offset, xlWideStringBuffer);
display = xlWideStringBuffer.toString(); String display = xlWideStringBuffer.toString();
CellRangeAddress cellRangeAddress = new CellRangeAddress(hyperlinkCellRange.firstRow, hyperlinkCellRange.lastRow, hyperlinkCellRange.firstCol, hyperlinkCellRange.lastCol); CellRangeAddress cellRangeAddress = new CellRangeAddress(hyperlinkCellRange.firstRow, hyperlinkCellRange.lastRow, hyperlinkCellRange.firstCol, hyperlinkCellRange.lastCol);
String url = relIdToHyperlink.get(relId); String url = relIdToHyperlink.get(relId);
if (location == null || location.length() == 0) { if (location.length() == 0) {
location = url; location = url;
} }

View File

@ -167,9 +167,7 @@ public class XSSFBReader extends XSSFReader {
PackagePart commentsPart = sheetPkg.getPackage().getPart(commentsName); PackagePart commentsPart = sheetPkg.getPackage().getPart(commentsName);
return new XSSFBCommentsTable(commentsPart.getInputStream()); return new XSSFBCommentsTable(commentsPart.getInputStream());
} }
} catch (InvalidFormatException e) { } catch (InvalidFormatException | IOException e) {
return null;
} catch (IOException e) {
return null; return null;
} }
return null; return null;
@ -241,7 +239,8 @@ public class XSSFBReader extends XSSFReader {
private void tryToAddWorksheet(byte[] data) throws XSSFBParseException { private void tryToAddWorksheet(byte[] data) throws XSSFBParseException {
int offset = 0; int offset = 0;
//this is the sheet state #2.5.142 //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; long iTabID = LittleEndian.getUInt(data, offset); offset += LittleEndian.INT_SIZE;
//according to #2.4.304 //according to #2.4.304
@ -251,9 +250,9 @@ public class XSSFBReader extends XSSFReader {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
offset += XSSFBUtils.readXLWideString(data, offset, sb); offset += XSSFBUtils.readXLWideString(data, offset, sb);
String relId = sb.toString(); sb.setLength(0); String relId = sb.toString(); sb.setLength(0);
offset += XSSFBUtils.readXLWideString(data, offset, sb); /*offset +=*/ XSSFBUtils.readXLWideString(data, offset, sb);
String name = sb.toString(); String name = sb.toString();
if (relId != null && relId.trim().length() > 0) { if (relId.trim().length() > 0) {
sheets.add(new XSSFSheetRef(relId, name)); sheets.add(new XSSFSheetRef(relId, name));
} }
} }
@ -272,7 +271,7 @@ public class XSSFBReader extends XSSFReader {
sb.setLength(0); sb.setLength(0);
offset += XSSFBUtils.readXLWideString(data, offset, sb); offset += XSSFBUtils.readXLWideString(data, offset, sb);
String name = sb.toString(); String name = sb.toString();
if (relId != null && relId.trim().length() > 0) { if (relId.trim().length() > 0) {
sheets.add(new XSSFSheetRef(relId, name)); sheets.add(new XSSFSheetRef(relId, name));
} }
if (offset == data.length) { if (offset == data.length) {
@ -285,4 +284,4 @@ public class XSSFBReader extends XSSFReader {
return sheets; return sheets;
} }
} }
} }

View File

@ -21,7 +21,6 @@ import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -147,7 +146,7 @@ public class XSSFExportToXml implements Comparator<String>{
tableMappings.put(commonXPath, table); tableMappings.put(commonXPath, table);
} }
Collections.sort(xpaths,this); xpaths.sort(this);
for(String xpath : xpaths) { for(String xpath : xpaths) {

View File

@ -256,6 +256,7 @@ public class XSSFComment implements Comment {
// There is a very odd xmlbeans bug when changing the row // There is a very odd xmlbeans bug when changing the row
// arrays which can lead to corrupt pointer // arrays which can lead to corrupt pointer
// This call seems to fix them again... See bug #50795 // This call seems to fix them again... See bug #50795
//noinspection ResultOfMethodCallIgnored
vmlShape.getClientDataList().toString(); vmlShape.getClientDataList().toString();
} }
} }

View File

@ -74,7 +74,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
for (CTCell c : row.getCArray()) { for (CTCell c : row.getCArray()) {
XSSFCell cell = new XSSFCell(this, c); XSSFCell cell = new XSSFCell(this, c);
// Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory // 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); _cells.put(colI, cell);
sheet.onReadCell(cell); sheet.onReadCell(cell);
} }
@ -230,7 +230,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
@Override @Override
public XSSFCell createCell(int columnIndex, CellType type) { 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 // 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; CTCell ctCell;
XSSFCell prev = _cells.get(colI); XSSFCell prev = _cells.get(colI);
if(prev != null){ 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"); 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 // 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); XSSFCell cell = _cells.get(colI);
switch (policy) { switch (policy) {
case RETURN_NULL_AND_BLANK: case RETURN_NULL_AND_BLANK:
@ -500,7 +500,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
_sheet.getWorkbook().onDeleteFormula(xcell); _sheet.getWorkbook().onDeleteFormula(xcell);
} }
// Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory // 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); _cells.remove(colI);
} }

View File

@ -266,7 +266,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
for (CTRow row : worksheetParam.getSheetData().getRowArray()) { for (CTRow row : worksheetParam.getSheetData().getRowArray()) {
XSSFRow r = new XSSFRow(row, this); XSSFRow r = new XSSFRow(row, this);
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory // 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); _rows.put(rownumI, r);
} }
} }
@ -751,7 +751,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
@Override @Override
public XSSFRow createRow(int rownum) { public XSSFRow createRow(int rownum) {
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory // 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; CTRow ctRow;
XSSFRow prev = _rows.get(rownumI); XSSFRow prev = _rows.get(rownumI);
if(prev != null){ if(prev != null){
@ -1448,7 +1448,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
@Override @Override
public XSSFRow getRow(int rownum) { public XSSFRow getRow(int rownum) {
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory // 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); return _rows.get(rownumI);
} }
@ -1479,8 +1479,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
} }
else { else {
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
final Integer startI = new Integer(startRowNum); // NOSONAR final Integer startI = Integer.valueOf(startRowNum); // NOSONAR
final Integer endI = new Integer(endRowNum+1); // NOSONAR final Integer endI = Integer.valueOf(endRowNum+1); // NOSONAR
final Collection<XSSFRow> inclusive = _rows.subMap(startI, endI).values(); final Collection<XSSFRow> inclusive = _rows.subMap(startI, endI).values();
rows.addAll(inclusive); 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 // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
final int rowNum = row.getRowNum(); 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! // this is not the physical row number!
final int idx = _rows.headMap(rowNumI).size(); final int idx = _rows.headMap(rowNumI).size();
_rows.remove(rowNumI); _rows.remove(rowNumI);
@ -2994,7 +2994,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
if (shouldRemoveRow(startRow, endRow, n, rownum)) { if (shouldRemoveRow(startRow, endRow, n, rownum)) {
// remove row from worksheet.getSheetData row array // remove row from worksheet.getSheetData row array
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory // 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(); int idx = _rows.headMap(rownumI).size();
worksheet.getSheetData().removeRow(idx); worksheet.getSheetData().removeRow(idx);
@ -3118,7 +3118,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
Map<Integer, XSSFRow> map = new HashMap<>(); Map<Integer, XSSFRow> map = new HashMap<>();
for(XSSFRow r : _rows.values()) { for(XSSFRow r : _rows.values()) {
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory // 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); map.put(rownumI, r);
} }
_rows.clear(); _rows.clear();

View File

@ -146,7 +146,7 @@ public class XWPFTable implements IBodyElement, ISDTContents {
* CTTblGrid tblgrid=table.addNewTblGrid(); * CTTblGrid tblgrid=table.addNewTblGrid();
* tblgrid.addNewGridCol().setW(new BigInteger("2000")); * tblgrid.addNewGridCol().setW(new BigInteger("2000"));
*/ */
getRows(); //getRows();
} }
/** /**

View File

@ -130,5 +130,12 @@
<Bug pattern="DM_NUMBER_CTOR" /> <Bug pattern="DM_NUMBER_CTOR" />
</Match> </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> </FindBugsFilter>

View File

@ -137,7 +137,7 @@ public final class Chunk {
command = new Command(cdef); 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 // header, not from the start of the chunk body
switch(type) { switch(type) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: 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]); command.value = Byte.valueOf(contents[offset]);
break; break;
case 9: case 9:
command.value = new Double( command.value = Double.valueOf(
LittleEndian.getDouble(contents, offset) LittleEndian.getDouble(contents, offset)
); );
break; break;

View File

@ -19,7 +19,6 @@ package org.apache.poi.hsmf.dev;
import java.io.PrintStream; import java.io.PrintStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import org.apache.poi.hsmf.datatypes.MAPIProperty; import org.apache.poi.hsmf.datatypes.MAPIProperty;
@ -32,19 +31,19 @@ public class TypesLister {
public void listByName(PrintStream out) { public void listByName(PrintStream out) {
ArrayList<MAPIProperty> all = new ArrayList<>(MAPIProperty.getAll()); ArrayList<MAPIProperty> all = new ArrayList<>(MAPIProperty.getAll());
Collections.sort(all, new Comparator<MAPIProperty>() { all.sort(new Comparator<MAPIProperty>() {
public int compare(MAPIProperty a, MAPIProperty b) { public int compare(MAPIProperty a, MAPIProperty b) {
return a.name.compareTo(b.name); return a.name.compareTo(b.name);
} }
}); });
list(all, out); list(all, out);
} }
public void listById(PrintStream out) { public void listById(PrintStream out) {
ArrayList<MAPIProperty> all = new ArrayList<>(MAPIProperty.getAll()); ArrayList<MAPIProperty> all = new ArrayList<>(MAPIProperty.getAll());
Collections.sort(all, new Comparator<MAPIProperty>() { all.sort(new Comparator<MAPIProperty>() {
public int compare(MAPIProperty a, MAPIProperty b) { public int compare(MAPIProperty a, MAPIProperty b) {
return Integer.compare(a.id, b.id); return Integer.compare(a.id, b.id);
} }
}); });
list(all, out); list(all, out);
} }

View File

@ -172,8 +172,7 @@ public class CHPBinTable
} }
List<CHPX> oldChpxSortedByStartPos = new ArrayList<>(_textRuns); List<CHPX> oldChpxSortedByStartPos = new ArrayList<>(_textRuns);
Collections.sort( oldChpxSortedByStartPos, oldChpxSortedByStartPos.sort(PropertyNode.StartComparator.instance);
PropertyNode.StartComparator.instance );
logger.log( POILogger.DEBUG, "CHPX sorted by start position in ", logger.log( POILogger.DEBUG, "CHPX sorted by start position in ",
Long.valueOf( System.currentTimeMillis() - start ), " ms" ); 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 ); SprmBuffer sprmBuffer = new SprmBuffer( 0 );
for ( CHPX chpx : chpxs ) for ( CHPX chpx : chpxs )

View File

@ -17,8 +17,6 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.util.Collections;
import org.apache.poi.poifs.common.POIFSConstants; import org.apache.poi.poifs.common.POIFSConstants;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
@ -65,6 +63,6 @@ public final class OldCHPBinTable extends CHPBinTable
_textRuns.add( chpx ); _textRuns.add( chpx );
} }
} }
Collections.sort( _textRuns, PropertyNode.StartComparator.instance ); _textRuns.sort(PropertyNode.StartComparator.instance);
} }
} }

View File

@ -17,8 +17,6 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.util.Collections;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
@ -81,6 +79,6 @@ public final class OldSectionTable extends SectionTable
_sections.add( sepx ); _sections.add( sepx );
} }
Collections.sort( _sections, PropertyNode.StartComparator.instance ); _sections.sort(PropertyNode.StartComparator.instance);
} }
} }

View File

@ -23,16 +23,9 @@ import java.util.Collections;
import org.apache.poi.util.CodePageUtil; import org.apache.poi.util.CodePageUtil;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
@Internal @Internal
public class OldTextPieceTable extends TextPieceTable { public class OldTextPieceTable extends TextPieceTable {
private static final POILogger logger = POILogFactory
.getLogger(OldTextPieceTable.class);
//arbitrarily selected; may need to increase //arbitrarily selected; may need to increase
private static final int MAX_RECORD_LENGTH = 100_000_000; 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 // into order, if they're not already
Collections.sort(_textPieces); Collections.sort(_textPieces);
_textPiecesFCOrder = new ArrayList<>(_textPieces); _textPiecesFCOrder = new ArrayList<>(_textPieces);
Collections.sort(_textPiecesFCOrder, new FCComparator()); _textPiecesFCOrder.sort(new FCComparator());
} }

View File

@ -20,7 +20,6 @@ package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.IdentityHashMap; import java.util.IdentityHashMap;
import java.util.LinkedList; import java.util.LinkedList;
@ -159,8 +158,7 @@ public class PAPBinTable
} }
List<PAPX> oldPapxSortedByEndPos = new ArrayList<>(paragraphs); List<PAPX> oldPapxSortedByEndPos = new ArrayList<>(paragraphs);
Collections.sort( oldPapxSortedByEndPos, oldPapxSortedByEndPos.sort(PropertyNode.EndComparator.instance);
PropertyNode.EndComparator.instance );
logger.log( POILogger.DEBUG, "PAPX sorted by end position in ", logger.log( POILogger.DEBUG, "PAPX sorted by end position in ",
Long.valueOf( System.currentTimeMillis() - start ), " ms" ); Long.valueOf( System.currentTimeMillis() - start ), " ms" );
@ -255,7 +253,7 @@ public class PAPBinTable
} }
// restore file order of PAPX // restore file order of PAPX
Collections.sort( papxs, papxFileOrderComparator ); papxs.sort(papxFileOrderComparator);
SprmBuffer sprmBuffer = null; SprmBuffer sprmBuffer = null;
for ( PAPX papx : papxs ) for ( PAPX papx : papxs )
@ -281,7 +279,6 @@ public class PAPBinTable
logger.log( POILogger.DEBUG, "PAPX rebuilded from document text in ", logger.log( POILogger.DEBUG, "PAPX rebuilded from document text in ",
Long.valueOf( System.currentTimeMillis() - start ), " ms (", Long.valueOf( System.currentTimeMillis() - start ), " ms (",
Integer.valueOf( paragraphs.size() ), " elements)" ); Integer.valueOf( paragraphs.size() ), " elements)" );
start = System.currentTimeMillis();
} }
public void insert(int listIndex, int cpStart, SprmBuffer buf) public void insert(int listIndex, int cpStart, SprmBuffer buf)

View File

@ -20,7 +20,6 @@ package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
@ -96,11 +95,10 @@ public class SectionTable
// is getting on for black magic... // is getting on for black magic...
boolean matchAt = false; boolean matchAt = false;
boolean matchHalf = false; boolean matchHalf = false;
for (int i=0; i<_sections.size(); i++) { for (SEPX s : _sections) {
SEPX s = _sections.get(i);
if (s.getEnd() == mainLength) { if (s.getEnd() == mainLength) {
matchAt = true; matchAt = true;
} else if(s.getEnd() == mainLength || s.getEnd() == mainLength -1) { } else if (s.getEnd() == mainLength || s.getEnd() == mainLength - 1) {
matchHalf = true; 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) public void adjustForInsert(int listIndex, int length)
@ -187,15 +185,13 @@ public class SectionTable
int len = _sections.size(); int len = _sections.size();
PlexOfCps plex = new PlexOfCps(SED_SIZE); PlexOfCps plex = new PlexOfCps(SED_SIZE);
for (int x = 0; x < len; x++) for (SEPX sepx : _sections) {
{
SEPX sepx = _sections.get(x);
byte[] grpprl = sepx.getGrpprl(); byte[] grpprl = sepx.getGrpprl();
// write the sepx to the document stream. starts with a 2 byte size // write the sepx to the document stream. starts with a 2 byte size
// followed by the grpprl // followed by the grpprl
byte[] shortBuf = new byte[2]; byte[] shortBuf = new byte[2];
LittleEndian.putShort(shortBuf, 0, (short)grpprl.length); LittleEndian.putShort(shortBuf, 0, (short) grpprl.length);
wordDocumentStream.write(shortBuf); wordDocumentStream.write(shortBuf);
wordDocumentStream.write(grpprl); wordDocumentStream.write(grpprl);
@ -208,7 +204,7 @@ public class SectionTable
/* original line */ /* original line */
GenericPropertyNode property = new GenericPropertyNode( 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 * Line using Ryan's FCtoCP() conversion method - unable to observe
* any effect on our testcases when using this code - piers * any effect on our testcases when using this code - piers

View File

@ -115,7 +115,7 @@ public class TextPieceTable implements CharIndexTranslator {
// into order, if they're not already // into order, if they're not already
Collections.sort(_textPieces); Collections.sort(_textPieces);
_textPiecesFCOrder = new ArrayList<>(_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) { protected TextPiece newTextPiece(int nodeStartChars, int nodeEndChars, byte[] buf, PieceDescriptor pd) {
@ -126,7 +126,7 @@ public class TextPieceTable implements CharIndexTranslator {
_textPieces.add(piece); _textPieces.add(piece);
_textPiecesFCOrder.add(piece); _textPiecesFCOrder.add(piece);
Collections.sort(_textPieces); Collections.sort(_textPieces);
Collections.sort(_textPiecesFCOrder, new FCComparator()); _textPiecesFCOrder.sort(new FCComparator());
} }
/** /**

View File

@ -248,7 +248,7 @@ public class BookmarksImpl implements Bookmarks
indices[counter++] = entry.getKey().intValue(); indices[counter++] = entry.getKey().intValue();
List<GenericPropertyNode> updated = new ArrayList<>( List<GenericPropertyNode> updated = new ArrayList<>(
entry.getValue()); entry.getValue());
Collections.sort( updated, PropertyNode.EndComparator.instance ); updated.sort(PropertyNode.EndComparator.instance);
entry.setValue( updated ); entry.setValue( updated );
} }
Arrays.sort( indices ); Arrays.sort( indices );

View File

@ -43,7 +43,7 @@ public class FieldsImpl implements Fields
* This is port and adaptation of Arrays.binarySearch from Java 6 (Apache * This is port and adaptation of Arrays.binarySearch from Java 6 (Apache
* Harmony). * Harmony).
*/ */
private static <T> int binarySearch( List<PlexOfField> list, private static int binarySearch( List<PlexOfField> list,
int startIndex, int endIndex, int requiredStartOffset ) int startIndex, int endIndex, int requiredStartOffset )
{ {
checkIndexForBinarySearch( list.size(), startIndex, endIndex ); checkIndexForBinarySearch( list.size(), startIndex, endIndex );
@ -136,7 +136,7 @@ public class FieldsImpl implements Fields
if ( plexOfFields == null || plexOfFields.isEmpty() ) if ( plexOfFields == null || plexOfFields.isEmpty() )
return new HashMap<>(); return new HashMap<>();
Collections.sort( plexOfFields, comparator ); plexOfFields.sort(comparator);
List<FieldImpl> fields = new ArrayList<>( List<FieldImpl> fields = new ArrayList<>(
plexOfFields.size() / 3 + 1); plexOfFields.size() / 3 + 1);
parseFieldStructureImpl( plexOfFields, 0, plexOfFields.size(), fields ); parseFieldStructureImpl( plexOfFields, 0, plexOfFields.size(), fields );