diff --git a/src/java/org/apache/poi/hssf/dev/BiffViewer.java b/src/java/org/apache/poi/hssf/dev/BiffViewer.java index 9f0aa1323d..1899fc387d 100644 --- a/src/java/org/apache/poi/hssf/dev/BiffViewer.java +++ b/src/java/org/apache/poi/hssf/dev/BiffViewer.java @@ -483,12 +483,10 @@ public final class BiffViewer { return result; } private static String formatRecordDetails(int globalOffset, int sid, int size, int recordCounter) { - StringBuilder sb = new StringBuilder(64); - sb.append("Offset=").append(HexDump.intToHex(globalOffset)).append("(").append(globalOffset).append(")"); - sb.append(" recno=").append(recordCounter); - sb.append( " sid=").append(HexDump.shortToHex(sid)); - sb.append( " size=").append(HexDump.shortToHex(size)).append("(").append(size).append(")"); - return sb.toString(); + return "Offset=" + HexDump.intToHex(globalOffset) + "(" + globalOffset + ")" + + " recno=" + recordCounter + + " sid=" + HexDump.shortToHex(sid) + + " size=" + HexDump.shortToHex(size) + "(" + size + ")"; } } diff --git a/src/java/org/apache/poi/ss/formula/ConditionalFormattingEvaluator.java b/src/java/org/apache/poi/ss/formula/ConditionalFormattingEvaluator.java index fee64cc06d..e50da917b0 100644 --- a/src/java/org/apache/poi/ss/formula/ConditionalFormattingEvaluator.java +++ b/src/java/org/apache/poi/ss/formula/ConditionalFormattingEvaluator.java @@ -33,7 +33,6 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddressBase; import org.apache.poi.ss.util.CellReference; -import org.apache.poi.ss.util.SheetUtil; /** * Evaluates Conditional Formatting constraints.

@@ -103,7 +102,7 @@ public class ConditionalFormattingEvaluator { /** * lazy load by sheet since reading can be expensive * - * @param sheet + * @param sheet The sheet to look at * @return unmodifiable list of rules */ protected List getRules(Sheet sheet) { @@ -156,9 +155,12 @@ public class ConditionalFormattingEvaluator { // compute and cache them rules = new ArrayList<>(); - Sheet sheet = null; - if (cellRef.getSheetName() != null) sheet = workbook.getSheet(cellRef.getSheetName()); - else sheet = workbook.getSheetAt(workbook.getActiveSheetIndex()); + final Sheet sheet; + if (cellRef.getSheetName() != null) { + sheet = workbook.getSheet(cellRef.getSheetName()); + } else { + sheet = workbook.getSheetAt(workbook.getActiveSheetIndex()); + } /* * Per Excel help: @@ -197,7 +199,7 @@ public class ConditionalFormattingEvaluator { * formula by the relative position of the current cell, or the wrong value is checked. * This is handled by {@link WorkbookEvaluator#evaluate(String, CellReference, CellRangeAddressBase)}. * - * @param cell + * @param cell The cell to look for * @return Unmodifiable List of {@link EvaluationConditionalFormatRule}s that apply to the current cell value, * in priority order, as evaluated by Excel (smallest priority # for XSSF, definition order for HSSF), * or null if none apply @@ -211,7 +213,9 @@ public class ConditionalFormattingEvaluator { } /** - * @param sheetName + * Retrieve all formatting rules for the sheet with the given name. + * + * @param sheetName The name of the sheet to look at * @return unmodifiable list of all Conditional format rules for the given sheet, if any */ public List getFormatRulesForSheet(String sheetName) { @@ -219,7 +223,9 @@ public class ConditionalFormattingEvaluator { } /** - * @param sheet + * Retrieve all formatting rules for the given sheet. + * + * @param sheet The sheet to look at * @return unmodifiable list of all Conditional format rules for the given sheet, if any */ public List getFormatRulesForSheet(Sheet sheet) { @@ -247,8 +253,9 @@ public class ConditionalFormattingEvaluator { } /** + * Retrieve all cells where the given formatting rule evaluates to true. * - * @param rule + * @param rule The rule to look at * @return unmodifiable List of all cells in the rule's region matching the rule's condition */ public List getMatchingCells(EvaluationConditionalFormatRule rule) { diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java index bb378d7e56..f8a9de5844 100644 --- a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java @@ -376,7 +376,7 @@ public class SXSSFSheet implements Sheet return _sh.getColumnStyle(column); } - /** + /* * Sets the CellStyle that applies to the given * (0 based) column. */ @@ -1131,8 +1131,8 @@ public class SXSSFSheet implements Sheet /** * Determines if there is a page break at the indicated row - * @param row FIXME: Document this! - * @return FIXME: Document this! + * @param row The row to check + * @return true if there is a page-break at the given row, false otherwise */ @Override public boolean isRowBroken(int row) @@ -1142,7 +1142,7 @@ public class SXSSFSheet implements Sheet /** * Removes the page break at the indicated row - * @param row + * @param row The row to remove page breaks from */ @Override public void removeRowBreak(int row) @@ -1172,7 +1172,7 @@ public class SXSSFSheet implements Sheet /** * Sets a page break at the indicated column - * @param column + * @param column The column to work on */ @Override public void setColumnBreak(int column) @@ -1182,8 +1182,8 @@ public class SXSSFSheet implements Sheet /** * Determines if there is a page break at the indicated column - * @param column FIXME: Document this! - * @return FIXME: Document this! + * @param column The column to check for page breaks + * @return true if there is a page break at the given column, false otherwise */ @Override public boolean isColumnBroken(int column) @@ -1193,7 +1193,7 @@ public class SXSSFSheet implements Sheet /** * Removes a page break at the indicated column - * @param column + * @param column The column to remove a page break from */ @Override public void removeColumnBreak(int column) @@ -1366,7 +1366,7 @@ public class SXSSFSheet implements Sheet int startRow = findStartOfRowOutlineGroup(rowIndex); // Hide all the columns until the end of the group - int lastRow = writeHidden(row, startRow, true); + int lastRow = writeHidden(row, startRow); SXSSFRow lastRowObj = getRow(lastRow); if (lastRowObj != null) { lastRowObj.setCollapsed(true); @@ -1397,12 +1397,12 @@ public class SXSSFSheet implements Sheet return currentRow + 1; } - private int writeHidden(SXSSFRow xRow, int rowIndex, boolean hidden) { + private int writeHidden(SXSSFRow xRow, int rowIndex) { int level = xRow.getOutlineLevel(); SXSSFRow currRow = getRow(rowIndex); while (currRow != null && currRow.getOutlineLevel() >= level) { - currRow.setHidden(hidden); + currRow.setHidden(true); rowIndex++; currRow = getRow(rowIndex); } @@ -1637,8 +1637,8 @@ public class SXSSFSheet implements Sheet /** * Get a Hyperlink in this sheet anchored at row, column * - * @param row - * @param column + * @param row The 0-base row number + * @param column The 0-based column number * @return hyperlink if there is a hyperlink anchored at row, column; otherwise returns null */ @Override @@ -1860,7 +1860,7 @@ public class SXSSFSheet implements Sheet /** * Flush all rows to disk. After this call no rows can be accessed via getRow() * - * @throws IOException + * @throws IOException If an I/O error occurs */ public void flushRows() throws IOException { @@ -1889,13 +1889,12 @@ public class SXSSFSheet implements Sheet public int getRowNum(SXSSFRow row) { - for(Iterator> iter=_rows.entrySet().iterator();iter.hasNext();) - { - Map.Entry entry=iter.next(); - if(entry.getValue()==row) { + for (Map.Entry entry : _rows.entrySet()) { + if (entry.getValue() == row) { return entry.getKey().intValue(); } } + return -1; } diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java index f65de2eb74..b385628f76 100644 --- a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java +++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java @@ -905,8 +905,7 @@ public class SXSSFWorkbook implements Workbook { * @exception IOException if anything can't be written. */ @Override - public void write(OutputStream stream) throws IOException - { + public void write(OutputStream stream) throws IOException { flushSheets(); //Save the template diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SheetDataWriter.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SheetDataWriter.java index f47c93ebf1..ab97288d04 100644 --- a/src/ooxml/java/org/apache/poi/xssf/streaming/SheetDataWriter.java +++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SheetDataWriter.java @@ -191,6 +191,8 @@ public class SheetDataWriter implements Closeable { * * @param rownum 0-based row number * @param row a row + * + * @throws IOException If an I/O error occurs */ public void writeRow(int rownum, SXSSFRow row) throws IOException { if (_numberOfFlushedRows == 0) diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java index 8c81736952..75eb69b76f 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java @@ -3851,7 +3851,6 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { @Override public CellRange setArrayFormula(String formula, CellRangeAddress range) { - CellRange cr = getCellRange(range); XSSFCell mainArrayFormulaCell = cr.getTopLeftCell(); diff --git a/src/ooxml/testcases/org/apache/poi/TestPOIXMLProperties.java b/src/ooxml/testcases/org/apache/poi/TestPOIXMLProperties.java index c0e51802fd..2c89085f2d 100644 --- a/src/ooxml/testcases/org/apache/poi/TestPOIXMLProperties.java +++ b/src/ooxml/testcases/org/apache/poi/TestPOIXMLProperties.java @@ -37,6 +37,7 @@ import org.apache.poi.xwpf.XWPFTestDataSamples; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; /** @@ -229,7 +230,8 @@ public final class TestPOIXMLProperties { return utcString.equals(dateTimeUtcString); } - //@Test + @Ignore("Fails to add some of the thumbnails, needs more investigation") + @Test public void testThumbnails() throws Exception { POIXMLProperties noThumbProps = sampleNoThumb.getProperties(); diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java b/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java index 14cb582b3a..d7cb2c23ad 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java @@ -43,11 +43,8 @@ public class XWPFTestDataSamples { } public static byte[] getImage(String filename) throws IOException { - InputStream is = POIDataSamples.getDocumentInstance().openResourceAsStream(filename); - try { + try (InputStream is = POIDataSamples.getDocumentInstance().openResourceAsStream(filename)) { return IOUtils.toByteArray(is); - } finally { - is.close(); } } } diff --git a/src/scratchpad/testcases/org/apache/poi/hmef/HMEFTest.java b/src/scratchpad/testcases/org/apache/poi/hmef/HMEFTest.java index 4dde7b3bc0..a43bc3010e 100644 --- a/src/scratchpad/testcases/org/apache/poi/hmef/HMEFTest.java +++ b/src/scratchpad/testcases/org/apache/poi/hmef/HMEFTest.java @@ -33,18 +33,16 @@ public abstract class HMEFTest extends TestCase { assertEquals(filename, attachment.getLongFilename()); assertContents(filename, attachment.getContents()); } + protected void assertContents(String filename, byte[] actual) throws IOException { - InputStream stream = _samples.openResourceAsStream("quick-contents/" + filename); - try { - byte[] expected = IOUtils.toByteArray(stream); - - assertEquals(expected.length, actual.length); - for(int i=0; i 0) System.out.println(); - } finally { - inputStream.close(); } } @@ -1750,26 +1741,20 @@ public final class TestNPOIFSFileSystem { for (int i = 0; i < iterations; i++) { - InputStream inputStream = POIDataSamples.getHSMFInstance().openResourceAsStream("lots-of-recipients.msg"); - try { + try (InputStream inputStream = POIDataSamples.getHSMFInstance().openResourceAsStream("lots-of-recipients.msg")) { NPOIFSFileSystem srcFileSystem = new NPOIFSFileSystem(inputStream); NPOIFSFileSystem destFileSystem = new NPOIFSFileSystem(); copyAllEntries(srcFileSystem.getRoot(), destFileSystem.getRoot()); File file = File.createTempFile("npoi", ".dat"); - OutputStream outputStream = new FileOutputStream(file); - try { + try (OutputStream outputStream = new FileOutputStream(file)) { destFileSystem.writeFilesystem(outputStream); - } finally { - outputStream.close(); } assertTrue(file.delete()); if (i % 10 == 0) System.out.print("."); if (i % 800 == 0 && i > 0) System.out.println(); - } finally { - inputStream.close(); } } @@ -1793,11 +1778,8 @@ public final class TestNPOIFSFileSystem { } else { DocumentEntry srcEntry = (DocumentEntry) entry; - InputStream inputStream = new DocumentInputStream(srcEntry); - try { + try (InputStream inputStream = new DocumentInputStream(srcEntry)) { destDirectory.createDocument(entry.getName(), inputStream); - } finally { - inputStream.close(); } } } diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java index 7d25d634f5..a076c1685c 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java @@ -576,8 +576,8 @@ public abstract class BaseTestSheetUpdateArrayFormulas { */ workbook.close(); } - - @Ignore + + @Ignore("See bug 59728") @Test public void shouldNotBeAbleToCreateArrayFormulaOnPreexistingMergedRegion() throws IOException { /*