See <https://ci-builds.apache.org/job/POI/job/POI-DSL-1.18/28/display/redirect?page=changes>
Changes: [Dominik Stadler] Various smaller changes Improve exception messages Add more JavaDoc Provide more information on test-failures [Dominik Stadler] Speed up execution of formulas with whole-column area reference The previous change via r1894675 did not fully solve this as it only took place when more than one sheet were used. There were still some cases where evaluating formulas needed to iterate across a huge number of non-existant rows, e.g. TestVLookup, which took more than 1 minute locally. However doing the lowering of row-numbers always would trigger test-regressions as some Excel-functionality depends on actions being possible on rows larger than current "last row" in the sheet. Thus changed this to a slightly different approach which only adjusts last-row when it is at or above the workbook-limit of rows Execution of TestVLookup is now at 1-2 seconds! Also added a test-case to verify details of the implementation now. [Dominik Stadler] Use a modified version of NullPrintStream in integration tests The default version from Commons-IO does not avoid doing utf-8 conversion and other work, so it is not well suited for cases where lots of output happens. Using an optimized version can bring down runtime of integration-tests somewhat, especially for large files where XLS2CSV prints out lots of data [PJ Fanning] [bug-65993] support copying hssf hyperlinks to xssf and respect full cell range [PJ Fanning] [github-318] handle null raw text. Thanks to wanglunhui2012. This closes #318 [Dominik Stadler] Also exclude new files in rat-check of ant-build ------------------------------------------ [...truncated 327.89 KB...] M V EI: org.apache.poi.hssf.usermodel.HSSFSheet.getWorkbook() may expose internal representation by returning HSSFSheet._workbook At HSSFSheet.java:[line 190] M V EI: org.apache.poi.hssf.usermodel.HSSFSheet.getSheet() may expose internal representation by returning HSSFSheet._sheet At HSSFSheet.java:[line 987] M V EI: org.apache.poi.hssf.usermodel.HSSFSheet.getDrawingPatriarch() may expose internal representation by returning HSSFSheet._patriarch At HSSFSheet.java:[line 2081] M V EI: org.apache.poi.hssf.usermodel.HSSFSheet.createDrawingPatriarch() may expose internal representation by returning HSSFSheet._patriarch At HSSFSheet.java:[line 2095] M V EI2: org.apache.poi.hssf.usermodel.DVConstraint.setExplicitListValues(String[]) may expose internal representation by storing an externally mutable object into DVConstraint._explicitListValues At DVConstraint.java:[line 329] M V EI: org.apache.poi.hssf.usermodel.DVConstraint.getExplicitListValues() may expose internal representation by returning DVConstraint._explicitListValues At DVConstraint.java:[line 318] M V EI2: new org.apache.poi.hssf.usermodel.HSSFClientAnchor(EscherClientAnchorRecord) may expose internal representation by storing an externally mutable object into HSSFClientAnchor._escherClientAnchor At HSSFClientAnchor.java:[line 37] M V EI2: new org.apache.poi.hssf.usermodel.HSSFDataValidation(CellRangeAddressList, DataValidationConstraint) may expose internal representation by storing an externally mutable object into HSSFDataValidation._constraint At HSSFDataValidation.java:[line 55] M V EI: org.apache.poi.hssf.usermodel.HSSFDataValidation.getConstraint() may expose internal representation by returning HSSFDataValidation._constraint At HSSFDataValidation.java:[line 67] M V EI2: new org.apache.poi.hssf.usermodel.HSSFDataValidation(CellRangeAddressList, DataValidationConstraint) may expose internal representation by storing an externally mutable object into HSSFDataValidation._regions At HSSFDataValidation.java:[line 52] M V EI: org.apache.poi.hssf.usermodel.HSSFDataValidation.getValidationConstraint() may expose internal representation by returning HSSFDataValidation._constraint At HSSFDataValidation.java:[line 63] M V EI: org.apache.poi.hssf.usermodel.HSSFDataValidation.getRegions() may expose internal representation by returning HSSFDataValidation._regions At HSSFDataValidation.java:[line 71] M V EI2: new org.apache.poi.hssf.usermodel.HSSFComment(EscherContainerRecord, ObjRecord, TextObjectRecord, NoteRecord) may expose internal representation by storing an externally mutable object into HSSFComment._note At HSSFComment.java:[line 63] M V EI2: new org.apache.poi.hssf.usermodel.HSSFObjectData(EscherContainerRecord, ObjRecord, DirectoryEntry) may expose internal representation by storing an externally mutable object into HSSFObjectData._root At HSSFObjectData.java:[line 44] M V EI: org.apache.poi.hssf.usermodel.HSSFPatriarch.getBoundAggregate() may expose internal representation by returning HSSFPatriarch._boundAggregate At HSSFPatriarch.java:[line 502] M V EI: org.apache.poi.hssf.usermodel.HSSFCell.getCellComment() may expose internal representation by returning HSSFCell._comment At HSSFCell.java:[line 1081] M V EI2: org.apache.poi.hssf.usermodel.HSSFCell.setCellComment(Comment) may expose internal representation by storing an externally mutable object into HSSFCell._comment At HSSFCell.java:[line 1068] M V EI: org.apache.poi.hssf.usermodel.HSSFCell.getRichStringCellValue() may expose internal representation by returning HSSFCell._stringValue At HSSFCell.java:[line 740] M V EI: org.apache.poi.hssf.usermodel.HSSFCell.getSheet() may expose internal representation by returning HSSFCell._sheet At HSSFCell.java:[line 132] M D SF: Switch statement found in org.apache.poi.hssf.usermodel.HSSFCell.setCellValueImpl(double) where one case falls through to the next case At HSSFCell.java:[lines 431-438] M D SF: Switch statement found in org.apache.poi.hssf.usermodel.HSSFCell.setCellValue(boolean) where one case falls through to the next case At HSSFCell.java:[lines 768-771] M D SF: Switch statement found in org.apache.poi.hssf.usermodel.HSSFCell.setCellErrorValue(FormulaError) where one case falls through to the next case At HSSFCell.java:[lines 810-813] M D NP: Load of known null value in org.apache.poi.ss.formula.FormulaParser.parseStructuredReference(String) At FormulaParser.java:[line 814] M D SF: Switch statement found in org.apache.poi.ss.formula.FormulaParser.parseSheetName() where default case is missing At FormulaParser.java:[lines 1176-1187] M D RCN: Redundant nullcheck of is which is known to be null in org.apache.poi.sl.draw.DrawPaint.getTexturePaint(PaintStyle$TexturePaint, Graphics2D) Redundant null check at DrawPaint.java:[line 342] M D NP: Load of known null value in org.apache.poi.sl.draw.DrawPaint.getTexturePaint(PaintStyle$TexturePaint, Graphics2D) At DrawPaint.java:[line 342] M V EI2: new org.apache.poi.sl.draw.DrawPaint(PlaceableShape) may expose internal representation by storing an externally mutable object into DrawPaint.shape At DrawPaint.java:[line 81] M D SF: Switch statement found in org.apache.poi.sl.draw.DrawPaint.getTexturePaint(PaintStyle$TexturePaint, Graphics2D) where default case is missing At DrawPaint.java:[lines 301-310] M V EI2: new org.apache.poi.sl.draw.DrawTextParagraph(TextParagraph) may expose internal representation by storing an externally mutable object into DrawTextParagraph.paragraph At DrawTextParagraph.java:[line 110] M V EI: org.apache.poi.ss.formula.OperationEvaluationContext.getWorkbook() may expose internal representation by returning OperationEvaluationContext._workbook At OperationEvaluationContext.java:[line 89] M V EI2: new org.apache.poi.ss.formula.OperationEvaluationContext(WorkbookEvaluator, EvaluationWorkbook, int, int, int, EvaluationTracker, boolean) may expose internal representation by storing an externally mutable object into OperationEvaluationContext._workbook At OperationEvaluationContext.java:[line 72] M V EI2: new org.apache.poi.ss.formula.OperationEvaluationContext(WorkbookEvaluator, EvaluationWorkbook, int, int, int, EvaluationTracker, boolean) may expose internal representation by storing an externally mutable object into OperationEvaluationContext._bookEvaluator At OperationEvaluationContext.java:[line 71] M V EI: org.apache.poi.poifs.crypt.agile.EncryptionDocument.getKeyData() may expose internal representation by returning EncryptionDocument.keyData At EncryptionDocument.java:[line 98] M V EI2: org.apache.poi.poifs.crypt.agile.EncryptionDocument.setDataIntegrity(DataIntegrity) may expose internal representation by storing an externally mutable object into EncryptionDocument.dataIntegrity At EncryptionDocument.java:[line 110] M V EI2: org.apache.poi.poifs.crypt.agile.EncryptionDocument.setKeyData(KeyData) may expose internal representation by storing an externally mutable object into EncryptionDocument.keyData At EncryptionDocument.java:[line 102] M V EI: org.apache.poi.poifs.crypt.agile.EncryptionDocument.getKeyEncryptors() may expose internal representation by returning EncryptionDocument.keyEncryptors At EncryptionDocument.java:[line 114] M V EI: org.apache.poi.poifs.crypt.agile.EncryptionDocument.getDataIntegrity() may expose internal representation by returning EncryptionDocument.dataIntegrity At EncryptionDocument.java:[line 106] M V EI2: org.apache.poi.poifs.crypt.agile.CertificateKeyEncryptor.setEncryptedKeyValue(byte[]) may expose internal representation by storing an externally mutable object into CertificateKeyEncryptor.encryptedKeyValue At CertificateKeyEncryptor.java:[line 76] M V EI: org.apache.poi.poifs.crypt.agile.CertificateKeyEncryptor.getEncryptedKeyValue() may expose internal representation by returning CertificateKeyEncryptor.encryptedKeyValue At CertificateKeyEncryptor.java:[line 72] M V EI: org.apache.poi.poifs.crypt.agile.CertificateKeyEncryptor.getX509Certificate() may expose internal representation by returning CertificateKeyEncryptor.x509Certificate At CertificateKeyEncryptor.java:[line 80] M V EI2: org.apache.poi.poifs.crypt.agile.CertificateKeyEncryptor.setCertVerifier(byte[]) may expose internal representation by storing an externally mutable object into CertificateKeyEncryptor.certVerifier At CertificateKeyEncryptor.java:[line 92] M V EI2: org.apache.poi.poifs.crypt.agile.CertificateKeyEncryptor.setX509Certificate(byte[]) may expose internal representation by storing an externally mutable object into CertificateKeyEncryptor.x509Certificate At CertificateKeyEncryptor.java:[line 84] M V EI: org.apache.poi.poifs.crypt.agile.CertificateKeyEncryptor.getCertVerifier() may expose internal representation by returning CertificateKeyEncryptor.certVerifier At CertificateKeyEncryptor.java:[line 88] M V EI2: org.apache.poi.poifs.crypt.agile.PasswordKeyEncryptor.setEncryptedVerifierHashInput(byte[]) may expose internal representation by storing an externally mutable object into PasswordKeyEncryptor.encryptedVerifierHashInput At PasswordKeyEncryptor.java:[line 220] M V EI: org.apache.poi.poifs.crypt.agile.PasswordKeyEncryptor.getSaltValue() may expose internal representation by returning PasswordKeyEncryptor.saltValue At PasswordKeyEncryptor.java:[line 200] M V EI2: org.apache.poi.poifs.crypt.agile.PasswordKeyEncryptor.setSaltValue(byte[]) may expose internal representation by storing an externally mutable object into PasswordKeyEncryptor.saltValue At PasswordKeyEncryptor.java:[line 204] M V EI2: org.apache.poi.poifs.crypt.agile.PasswordKeyEncryptor.setEncryptedVerifierHashValue(byte[]) may expose internal representation by storing an externally mutable object into PasswordKeyEncryptor.encryptedVerifierHashValue At PasswordKeyEncryptor.java:[line 228] M V EI: org.apache.poi.poifs.crypt.agile.PasswordKeyEncryptor.getEncryptedVerifierHashInput() may expose internal representation by returning PasswordKeyEncryptor.encryptedVerifierHashInput At PasswordKeyEncryptor.java:[line 216] M V EI: org.apache.poi.poifs.crypt.agile.PasswordKeyEncryptor.getEncryptedKeyValue() may expose internal representation by returning PasswordKeyEncryptor.encryptedKeyValue At PasswordKeyEncryptor.java:[line 232] M V EI: org.apache.poi.poifs.crypt.agile.PasswordKeyEncryptor.getEncryptedVerifierHashValue() may expose internal representation by returning PasswordKeyEncryptor.encryptedVerifierHashValue At PasswordKeyEncryptor.java:[line 224] M V EI2: org.apache.poi.poifs.crypt.agile.PasswordKeyEncryptor.setEncryptedKeyValue(byte[]) may expose internal representation by storing an externally mutable object into PasswordKeyEncryptor.encryptedKeyValue At PasswordKeyEncryptor.java:[line 236] M V EI: org.apache.poi.ss.usermodel.DataFormatter.getLocaleChangedObservable() may expose internal representation by returning DataFormatter.pcs At DataFormatter.java:[line 1220] M V EI2: new org.apache.poi.ss.formula.DataValidationEvaluator(Workbook, WorkbookEvaluatorProvider) may expose internal representation by storing an externally mutable object into DataValidationEvaluator.workbook At DataValidationEvaluator.java:[line 78] M D DLS: Dead store to sheet in org.apache.poi.hssf.usermodel.helpers.HSSFRowColShifter.updateRowFormulas(HSSFRow, FormulaShifter) At HSSFRowColShifter.java:[line 71] M V EI: org.apache.poi.hssf.usermodel.HSSFRow.getSheet() may expose internal representation by returning HSSFRow.sheet At HSSFRow.java:[line 274] M V EI2: new org.apache.poi.ss.formula.EvaluationConditionalFormatRule(WorkbookEvaluator, Sheet, ConditionalFormatting, int, ConditionalFormattingRule, int, CellRangeAddress[]) may expose internal representation by storing an externally mutable object into EvaluationConditionalFormatRule.formatting At EvaluationConditionalFormatRule.java:[line 115] M V EI: org.apache.poi.ss.formula.EvaluationConditionalFormatRule.getRegions() may expose internal representation by returning EvaluationConditionalFormatRule.regions At EvaluationConditionalFormatRule.java:[line 193] M V EI2: new org.apache.poi.ss.formula.EvaluationConditionalFormatRule(WorkbookEvaluator, Sheet, ConditionalFormatting, int, ConditionalFormattingRule, int, CellRangeAddress[]) may expose internal representation by storing an externally mutable object into EvaluationConditionalFormatRule.workbookEvaluator At EvaluationConditionalFormatRule.java:[line 113] M V EI2: new org.apache.poi.ss.formula.EvaluationConditionalFormatRule(WorkbookEvaluator, Sheet, ConditionalFormatting, int, ConditionalFormattingRule, int, CellRangeAddress[]) may expose internal representation by storing an externally mutable object into EvaluationConditionalFormatRule.sheet At EvaluationConditionalFormatRule.java:[line 114] M V EI: org.apache.poi.ss.formula.EvaluationConditionalFormatRule.getSheet() may expose internal representation by returning EvaluationConditionalFormatRule.sheet At EvaluationConditionalFormatRule.java:[line 151] M V EI: org.apache.poi.ss.formula.EvaluationConditionalFormatRule.getFormatting() may expose internal representation by returning EvaluationConditionalFormatRule.formatting At EvaluationConditionalFormatRule.java:[line 158] M V EI2: new org.apache.poi.ss.formula.EvaluationConditionalFormatRule(WorkbookEvaluator, Sheet, ConditionalFormatting, int, ConditionalFormattingRule, int, CellRangeAddress[]) may expose internal representation by storing an externally mutable object into EvaluationConditionalFormatRule.regions At EvaluationConditionalFormatRule.java:[line 122] M V EI: org.apache.poi.poifs.crypt.agile.KeyEncryptor.getCertificateKeyEncryptor() may expose internal representation by returning KeyEncryptor.certificateKeyEncryptor At KeyEncryptor.java:[line 75] M V EI: org.apache.poi.poifs.crypt.agile.KeyEncryptor.getPasswordKeyEncryptor() may expose internal representation by returning KeyEncryptor.passwordKeyEncryptor At KeyEncryptor.java:[line 67] M V EI2: org.apache.poi.poifs.crypt.agile.KeyEncryptor.setCertificateKeyEncryptor(CertificateKeyEncryptor) may expose internal representation by storing an externally mutable object into KeyEncryptor.certificateKeyEncryptor At KeyEncryptor.java:[line 79] M V EI2: org.apache.poi.poifs.crypt.agile.KeyEncryptor.setPasswordKeyEncryptor(PasswordKeyEncryptor) may expose internal representation by storing an externally mutable object into KeyEncryptor.passwordKeyEncryptor At KeyEncryptor.java:[line 71] M B NP: org.apache.poi.ss.formula.functions.Countif.parseBoolean(String) has Boolean return type and returns explicit null At Countif.java:[line 554] M V EI2: org.apache.poi.hssf.record.OldStringRecord.setCodePage(CodepageRecord) may expose internal representation by storing an externally mutable object into OldStringRecord.codepage At OldStringRecord.java:[line 73] M V EI: org.apache.poi.poifs.crypt.agile.AgileEncryptionHeader.getEncryptedHmacKey() may expose internal representation by returning AgileEncryptionHeader.encryptedHmacKey At AgileEncryptionHeader.java:[line 112] M V EI: org.apache.poi.poifs.crypt.agile.AgileEncryptionHeader.getEncryptedHmacValue() may expose internal representation by returning AgileEncryptionHeader.encryptedHmacValue At AgileEncryptionHeader.java:[line 120] M V EI: org.apache.poi.ss.formula.BaseFormulaEvaluator._getWorkbookEvaluator() may expose internal representation by returning BaseFormulaEvaluator._bookEvaluator At BaseFormulaEvaluator.java:[line 63] M V EI2: new org.apache.poi.hssf.record.SupBookRecord(String, String[]) may expose internal representation by storing an externally mutable object into SupBookRecord.field_3_sheet_names At SupBookRecord.java:[line 77] M D SF: Switch statement found in org.apache.poi.ss.formula.functions.LookupUtils.lookupIndexOfValue(LookupUtils$LookupValueComparer, LookupUtils$ValueVector, LookupUtils$MatchMode, boolean) where default case is missing At LookupUtils.java:[lines 710-734] M D SF: Switch statement found in org.apache.poi.ss.formula.functions.LookupUtils.binarySearchIndexOfValue(LookupUtils$LookupValueComparer, LookupUtils$ValueVector, LookupUtils$MatchMode, boolean) where default case is missing At LookupUtils.java:[lines 761-785] M V EI: org.apache.poi.hssf.usermodel.HSSFChart$HSSFSeries.getDataName() may expose internal representation by returning HSSFChart$HSSFSeries.dataName At HSSFChart.java:[line 1033] M V EI: org.apache.poi.hssf.usermodel.HSSFChart$HSSFSeries.getSeries() may expose internal representation by returning HSSFChart$HSSFSeries.series At HSSFChart.java:[line 1061] M V EI: org.apache.poi.hssf.usermodel.HSSFChart$HSSFSeries.getDataValues() may expose internal representation by returning HSSFChart$HSSFSeries.dataValues At HSSFChart.java:[line 1040] M V EI: org.apache.poi.hssf.usermodel.HSSFChart$HSSFSeries.getDataSecondaryCategoryLabels() may expose internal representation by returning HSSFChart$HSSFSeries.dataSecondaryCategoryLabels At HSSFChart.java:[line 1054] M V EI: org.apache.poi.hssf.usermodel.HSSFChart$HSSFSeries.getDataCategoryLabels() may expose internal representation by returning HSSFChart$HSSFSeries.dataCategoryLabels At HSSFChart.java:[line 1047] M V EI2: new org.apache.poi.hssf.usermodel.EscherGraphics(HSSFShapeGroup, HSSFWorkbook, Color, float) may expose internal representation by storing an externally mutable object into EscherGraphics.escherGroup At EscherGraphics.java:[line 82] M V EI2: new org.apache.poi.hssf.usermodel.EscherGraphics(HSSFShapeGroup, HSSFWorkbook, Color, float) may expose internal representation by storing an externally mutable object into EscherGraphics.workbook At EscherGraphics.java:[line 83] M V EI: org.apache.poi.hssf.extractor.ExcelExtractor.getFilesystem() may expose internal representation by returning ExcelExtractor._wb At ExcelExtractor.java:[line 434] M V EI: org.apache.poi.hssf.extractor.ExcelExtractor.getDocument() may expose internal representation by returning ExcelExtractor._wb At ExcelExtractor.java:[line 419] M V EI2: new org.apache.poi.hssf.extractor.ExcelExtractor(HSSFWorkbook) may expose internal representation by storing an externally mutable object into ExcelExtractor._wb At ExcelExtractor.java:[line 67] M B Nm: The class name org.apache.poi.hssf.extractor.ExcelExtractor shadows the simple name of implemented interface org.apache.poi.ss.extractor.ExcelExtractor At ExcelExtractor.java:[lines 56-434] M V EI: org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor.getDocument() may expose internal representation by returning HPSFPropertiesExtractor.document At HPSFPropertiesExtractor.java:[line 144] M V EI: org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor.getFilesystem() may expose internal representation by returning HPSFPropertiesExtractor.document At HPSFPropertiesExtractor.java:[line 159] M V EI2: new org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor(POIDocument) may expose internal representation by storing an externally mutable object into HPSFPropertiesExtractor.document At HPSFPropertiesExtractor.java:[line 46] M V EI2: new org.apache.poi.ss.usermodel.RangeCopier(Sheet, Sheet) may expose internal representation by storing an externally mutable object into RangeCopier.destSheet At RangeCopier.java:[line 38] M V EI2: new org.apache.poi.ss.usermodel.RangeCopier(Sheet, Sheet) may expose internal representation by storing an externally mutable object into RangeCopier.sourceSheet At RangeCopier.java:[line 37] M V EI2: org.apache.poi.hssf.record.OldSheetRecord.setCodePage(CodepageRecord) may expose internal representation by storing an externally mutable object into OldSheetRecord.codepage At OldSheetRecord.java:[line 70] M C SA: Self comparison of CellDateFormatter.EXCEL_EPOCH_CAL with itself in org.apache.poi.ss.format.CellDateFormatter.simpleValue(StringBuffer, Object) At CellDateFormatter.java:[line 246] M V EI2: org.apache.poi.hssf.record.OldLabelRecord.setCodePage(CodepageRecord) may expose internal representation by storing an externally mutable object into OldLabelRecord.codepage At OldLabelRecord.java:[line 71] M V EI: org.apache.poi.ddf.EscherTextboxRecord.getData() may expose internal representation by returning EscherTextboxRecord.thedata At EscherTextboxRecord.java:[line 107] M V EI2: new org.apache.poi.hssf.record.UserSViewEnd(byte[]) may expose internal representation by storing an externally mutable object into UserSViewEnd._rawData At UserSViewEnd.java:[line 40] > Task :poi:spotbugsTest M D DLS: Dead store to hour in org.apache.poi.hssf.usermodel.TestFormulas.testDateFormulas() At TestFormulas.java:[line 639] M C RCN: Nullcheck of wbBack2 at line 207 of value previously dereferenced in org.apache.poi.hssf.usermodel.TestHSSFCell.testActiveCellBug56114() At TestHSSFCell.java:[line 207] M C RCN: Nullcheck of wbBack at line 198 of value previously dereferenced in org.apache.poi.hssf.usermodel.TestHSSFCell.testActiveCellBug56114() At TestHSSFCell.java:[line 198] M C RCN: Nullcheck of wb at line 376 of value previously dereferenced in org.apache.poi.hssf.usermodel.TestHSSFCell.testCellType() At TestHSSFCell.java:[line 376] M D RV: Return value of POIFSMiniStore.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSMiniStore.java:[line 250] M B FS: Format string should use %n rather than \n in org.apache.poi.hssf.dev.TestFormulaViewer.parseFormulaRecord(FormulaRecord) At TestFormulaViewer.java:[line 110] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1231] M D RV: Return value of POIFSMiniStore.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1273] M D RV: Return value of POIFSMiniStore.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1336] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1293] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1625] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1608] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1598] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1577] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1559] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1532] M D RV: Return value of POIFSMiniStore.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1339] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1295] M D RV: Return value of POIFSMiniStore.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1275] M D RV: Return value of POIFSFileSystem.getBATBlockAndIndex(int) ignored, but method has no side effect At TestPOIFSStream.java:[line 1233] M P SS: Unread field: org.apache.poi.hssf.dev.TestFormulaViewer.doListFormula; should this field be static? At TestFormulaViewer.java:[line 50] M D UrF: Unread public/protected field: org.apache.poi.ss.usermodel.BaseTestRangeCopier.testDataProvider At TestHSSFRangeCopier.java:[line 32] M P SS: Unread field: org.apache.poi.hssf.usermodel.TestNonStandardWorkbookStreamNames.xlsB; should this field be static? At TestNonStandardWorkbookStreamNames.java:[line 38] M P UrF: Unread field: org.apache.poi.hssf.record.TestTableRecord.header At TestTableRecord.java:[line 32] M P SS: Unread field: org.apache.poi.hssf.usermodel.TestNonStandardWorkbookStreamNames.xlsA; should this field be static? At TestNonStandardWorkbookStreamNames.java:[line 37] The following errors occurred during analysis: Unable to construct type qualifier checker javax/annotation/Nonnull$Checker java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release At java.base/java.lang.System.setSecurityManager(System.java:416) At edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValue.<init>(TypeQualifierValue.java:157) At edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValue.getValue(TypeQualifierValue.java:298) At edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValue.getValue(TypeQualifierValue.java:306) At edu.umd.cs.findbugs.ba.npe.TypeQualifierNullnessAnnotationDatabase.<init>(TypeQualifierNullnessAnnotationDatabase.java:70) At edu.umd.cs.findbugs.ba.AnalysisContext.getNullnessAnnotationDatabase(AnalysisContext.java:1055) At edu.umd.cs.findbugs.ba.AnalysisContext.updateDatabases(AnalysisContext.java:1008) At edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1061) At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:309) At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:395) At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1231) SpotBugs ended with exit code 1 > Task :poi:spotbugsMain M V EI: org.apache.poi.common.usermodel.fonts.FontHeader.getPanose() may expose internal representation by returning FontHeader.panose At FontHeader.java:[line 290] M D DLS: Dead store to reserved4 in org.apache.poi.common.usermodel.fonts.FontHeader.init(LittleEndianInput) At FontHeader.java:[line 174] M D DLS: Dead store to reserved3 in org.apache.poi.common.usermodel.fonts.FontHeader.init(LittleEndianInput) At FontHeader.java:[line 173] M D DLS: Dead store to reserved2 in org.apache.poi.common.usermodel.fonts.FontHeader.init(LittleEndianInput) At FontHeader.java:[line 172] M D DLS: Dead store to reserved1 in org.apache.poi.common.usermodel.fonts.FontHeader.init(LittleEndianInput) At FontHeader.java:[line 171] M V EI: org.apache.poi.ddf.EscherClientDataRecord.getRemainingData() may expose internal representation by returning EscherClientDataRecord.remainingData At EscherClientDataRecord.java:[line 114] M V EI: org.apache.poi.ss.formula.DataValidationEvaluator$DataValidationContext.getValidation() may expose internal representation by returning DataValidationEvaluator$DataValidationContext.dv At DataValidationEvaluator.java:[line 540] M V EI2: new org.apache.poi.ss.formula.DataValidationEvaluator$DataValidationContext(DataValidation, DataValidationEvaluator, CellRangeAddressBase, CellReference) may expose internal representation by storing an externally mutable object into DataValidationEvaluator$DataValidationContext.dve At DataValidationEvaluator.java:[line 532] M V EI2: new org.apache.poi.ss.formula.DataValidationEvaluator$DataValidationContext(DataValidation, DataValidationEvaluator, CellRangeAddressBase, CellReference) may expose internal representation by storing an externally mutable object into DataValidationEvaluator$DataValidationContext.dv At DataValidationEvaluator.java:[line 531] M V EI: org.apache.poi.ss.formula.DataValidationEvaluator$DataValidationContext.getRegion() may expose internal representation by returning DataValidationEvaluator$DataValidationContext.region At DataValidationEvaluator.java:[line 552] M V EI2: new org.apache.poi.ss.formula.DataValidationEvaluator$DataValidationContext(DataValidation, DataValidationEvaluator, CellRangeAddressBase, CellReference) may expose internal representation by storing an externally mutable object into DataValidationEvaluator$DataValidationContext.target At DataValidationEvaluator.java:[line 534] M V EI2: new org.apache.poi.ss.formula.DataValidationEvaluator$DataValidationContext(DataValidation, DataValidationEvaluator, CellRangeAddressBase, CellReference) may expose internal representation by storing an externally mutable object into DataValidationEvaluator$DataValidationContext.region At DataValidationEvaluator.java:[line 533] M V EI: org.apache.poi.ss.formula.DataValidationEvaluator$DataValidationContext.getEvaluator() may expose internal representation by returning DataValidationEvaluator$DataValidationContext.dve At DataValidationEvaluator.java:[line 546] M V EI: org.apache.poi.ss.formula.DataValidationEvaluator$DataValidationContext.getTarget() may expose internal representation by returning DataValidationEvaluator$DataValidationContext.target At DataValidationEvaluator.java:[line 558] M V EI2: new org.apache.poi.sl.draw.SLGraphics(GroupShape) may expose internal representation by storing an externally mutable object into SLGraphics._group At SLGraphics.java:[line 77] M V EI: org.apache.poi.sl.draw.SLGraphics.getShapeGroup() may expose internal representation by returning SLGraphics._group At SLGraphics.java:[line 92] M V EI: org.apache.poi.sl.draw.SLGraphics.getRenderingHints() may expose internal representation by returning SLGraphics._hints At SLGraphics.java:[line 1556] M V EI: org.apache.poi.hpsf.Array.getValues() may expose internal representation by returning Array._values At Array.java:[line 102] M V EI2: new org.apache.poi.hssf.usermodel.EscherGraphics2d(EscherGraphics) may expose internal representation by storing an externally mutable object into EscherGraphics2d._escherGraphics At EscherGraphics2d.java:[line 89] M D SF: Switch statement found in org.apache.poi.ss.formula.functions.FinanceFunction.evaluate(double[]) where one case falls through to the next case At FinanceFunction.java:[lines 98-101] M V EI: org.apache.poi.hssf.extractor.EventBasedExcelExtractor.getRoot() may expose internal representation by returning EventBasedExcelExtractor._dir At EventBasedExcelExtractor.java:[line 292] M V EI2: new org.apache.poi.hssf.extractor.EventBasedExcelExtractor(DirectoryNode) may expose internal representation by storing an externally mutable object into EventBasedExcelExtractor._dir At EventBasedExcelExtractor.java:[line 72] M V EI: org.apache.poi.hssf.extractor.EventBasedExcelExtractor.getFilesystem() may expose internal representation by returning EventBasedExcelExtractor.poifs At EventBasedExcelExtractor.java:[line 282] M V EI2: new org.apache.poi.hssf.extractor.EventBasedExcelExtractor(POIFSFileSystem) may expose internal representation by storing an externally mutable object into EventBasedExcelExtractor.poifs At EventBasedExcelExtractor.java:[line 76] M D DLS: Dead store to maxN in org.apache.poi.ss.formula.functions.Sumproduct.evaluateSingleProduct(ValueEval[]) At Sumproduct.java:[line 95] M V EI: org.apache.poi.ddf.EscherClientAnchorRecord.getRemainingData() may expose internal representation by returning EscherClientAnchorRecord.remainingData At EscherClientAnchorRecord.java:[line 368] M V EI2: new org.apache.poi.poifs.macros.VBAMacroReader(POIFSFileSystem) may expose internal representation by storing an externally mutable object into VBAMacroReader.fs At VBAMacroReader.java:[line 100] M D DLS: Dead store to ld in org.apache.poi.ss.formula.functions.TimeValue.evaluate(int, int, ValueEval) At TimeValue.java:[line 68] M V EI2: new org.apache.poi.poifs.crypt.DataSpaceMapUtils$IRMDSTransformInfo(DataSpaceMapUtils$TransformInfoHeader, int, String) may expose internal representation by storing an externally mutable object into DataSpaceMapUtils$IRMDSTransformInfo.transformInfoHeader At DataSpaceMapUtils.java:[line 184] M V EI: org.apache.poi.hssf.eventusermodel.EventWorkbookBuilder$SheetRecordCollectingListener.getSSTRecord() may expose internal representation by returning EventWorkbookBuilder$SheetRecordCollectingListener.sstRecord At EventWorkbookBuilder.java:[line 134] M V EI2: org.apache.poi.hssf.eventusermodel.EventWorkbookBuilder$SheetRecordCollectingListener.processRecordInternally(Record) may expose internal representation by storing an externally mutable object into EventWorkbookBuilder$SheetRecordCollectingListener.sstRecord At EventWorkbookBuilder.java:[line 182] M V EI: org.apache.poi.sl.image.ImageHeaderEMF.getBounds() may expose internal representation by returning ImageHeaderEMF.deviceBounds At ImageHeaderEMF.java:[line 67] M D SF: Switch statement found in org.apache.poi.ss.formula.functions.Offset.evaluate(ValueEval[], int, int) where one case falls through to the next case At Offset.java:[lines 172-176] M D SF: Switch statement found in org.apache.poi.ss.formula.atp.YearFrac.evaluate(ValueEval[], OperationEvaluationContext) where one case falls through to the next case At YearFrac.java:[lines 71-74] M V EI: org.apache.poi.hssf.record.FeatRecord.getCellRefs() may expose internal representation by returning FeatRecord.cellRefs At FeatRecord.java:[line 156] M V EI2: org.apache.poi.hssf.record.FeatRecord.setCellRefs(CellRangeAddress[]) may expose internal representation by storing an externally mutable object into FeatRecord.cellRefs At FeatRecord.java:[line 159] M B Nm: The class name org.apache.poi.hssf.usermodel.HeaderFooter shadows the simple name of implemented interface org.apache.poi.ss.usermodel.HeaderFooter At HeaderFooter.java:[lines 26-310] M V EI2: new org.apache.poi.poifs.crypt.binaryrc4.BinaryRC4Encryptor$BinaryRC4CipherOutputStream(BinaryRC4Encryptor, OutputStream) may expose internal representation by storing an externally mutable object into BinaryRC4Encryptor$BinaryRC4CipherOutputStream.this$0 At BinaryRC4Encryptor.java:[line 134] M V EI2: new org.apache.poi.poifs.crypt.binaryrc4.BinaryRC4Encryptor$BinaryRC4CipherOutputStream(BinaryRC4Encryptor, DirectoryNode) may expose internal representation by storing an externally mutable object into BinaryRC4Encryptor$BinaryRC4CipherOutputStream.this$0 At BinaryRC4Encryptor.java:[line 139] M V EI: org.apache.poi.ddf.UnknownEscherRecord.getData() may expose internal representation by returning UnknownEscherRecord.thedata At UnknownEscherRecord.java:[line 129] M V EI: org.apache.poi.ddf.UnknownEscherRecord.getChildRecords() may expose internal representation by returning UnknownEscherRecord._childRecords At UnknownEscherRecord.java:[line 139] M P UrF: Unread field: org.apache.poi.hpsf.Decimal.field_5_lo64 At Decimal.java:[line 38] M P UrF: Unread field: org.apache.poi.hpsf.Decimal.field_2_scale At Decimal.java:[line 35] M P SS: Unread field: org.apache.poi.ss.formula.ptg.UnknownPtg.size; should this field be static? At UnknownPtg.java:[line 25] M P UrF: Unread field: org.apache.poi.hssf.usermodel.HSSFChart.chartTitleFormat At HSSFChart.java:[line 217] M P UrF: Unread field: org.apache.poi.ss.formula.atp.TextJoinFunction.evaluator At TextJoinFunction.java:[line 51] M P UrF: Unread field: org.apache.poi.hpsf.Decimal.field_4_hi32 At Decimal.java:[line 37] M P UrF: Unread field: org.apache.poi.ss.formula.atp.PercentRankIncFunction.evaluator At PercentRankIncFunction.java:[line 51] M P UrF: Unread field: org.apache.poi.hpsf.Decimal.field_1_wReserved At Decimal.java:[line 34] M P UrF: Unread field: org.apache.poi.ss.formula.atp.PercentRankExcFunction.evaluator At PercentRankExcFunction.java:[line 55] M P UrF: Unread field: org.apache.poi.hpsf.Decimal.field_3_sign At Decimal.java:[line 36] M V MS: org.apache.poi.hpsf.VariantSupport.SUPPORTED_TYPES should be package protected At VariantSupport.java:[line 55] M V MS: org.apache.poi.hpsf.DocumentSummaryInformation.FORMAT_ID should be package protected At DocumentSummaryInformation.java:[line 51] M V MS: org.apache.poi.ss.formula.eval.FunctionEval.functions should be package protected At FunctionEval.java:[line 59] M M IS: Inconsistent synchronization of org.apache.poi.poifs.filesystem.DocumentInputStream._current_block_count; locked 71% of time Unsynchronized access at DocumentInputStream.java:[line 287] M M IS: Inconsistent synchronization of org.apache.poi.ss.format.CellDateFormatter.sFmt; locked 66% of time Unsynchronized access at CellDateFormatter.java:[line 109] M M IS: Inconsistent synchronization of org.apache.poi.ss.format.CellDateFormatter.amPmUpper; locked 50% of time Unsynchronized access at CellDateFormatter.java:[line 122] M M IS: Inconsistent synchronization of org.apache.poi.poifs.filesystem.DocumentInputStream._buffer; locked 50% of time Unsynchronized access at DocumentInputStream.java:[line 286] M M IS: Inconsistent synchronization of org.apache.poi.hpsf.ClassIDPredefined.classId; locked 66% of time Unsynchronized access at ClassIDPredefined.java:[line 132] M M IS: Inconsistent synchronization of org.apache.poi.poifs.filesystem.DocumentInputStream._data; locked 80% of time Unsynchronized access at DocumentInputStream.java:[line 288] The following errors occurred during analysis: Unable to construct type qualifier checker javax/annotation/Nonnull$Checker java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release At java.base/java.lang.System.setSecurityManager(System.java:416) At edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValue.<init>(TypeQualifierValue.java:157) At edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValue.getValue(TypeQualifierValue.java:298) At edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValue.getValue(TypeQualifierValue.java:306) At edu.umd.cs.findbugs.ba.npe.TypeQualifierNullnessAnnotationDatabase.<init>(TypeQualifierNullnessAnnotationDatabase.java:70) At edu.umd.cs.findbugs.ba.AnalysisContext.getNullnessAnnotationDatabase(AnalysisContext.java:1055) At edu.umd.cs.findbugs.ba.AnalysisContext.updateDatabases(AnalysisContext.java:1008) At edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1061) At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:309) At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:395) At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1231) SpotBugs ended with exit code 1 > Task :poi-ooxml-lite:compileJava FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':poi-scratchpad:jacocoTestReport'. > Error while creating report * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. See https://docs.gradle.org/7.4.1/userguide/command_line_interface.html#sec:command_line_warnings Execution optimizations have been disabled for 1 invalid unit(s) of work during this build to ensure correctness. Please consult deprecation warnings for more details. BUILD FAILED in 3m 40s 59 actionable tasks: 57 executed, 2 up-to-date Build step 'Invoke Gradle script' changed build result to FAILURE Build step 'Invoke Gradle script' marked build as failure [SpotBugs] Skipping execution of recorder since overall result is 'FAILURE' Archiving artifacts Recording test results [Checks API] No suitable checks publisher found. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org For additional commands, e-mail: dev-h...@poi.apache.org