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

Reply via email to