Author: kiwiwings Date: Sat Dec 26 00:08:19 2020 New Revision: 1884807 URL: http://svn.apache.org/viewvc?rev=1884807&view=rev Log: Sonar fixes
Modified: poi/trunk/src/examples/src/org/apache/poi/examples/xslf/LinkVideoToPptx.java poi/trunk/src/excelant/java/org/apache/poi/ss/excelant/ExcelAntUserDefinedFunction.java poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java poi/trunk/src/java/org/apache/poi/extractor/MainExtractorFactory.java poi/trunk/src/java/org/apache/poi/hssf/dev/ReSave.java poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java poi/trunk/src/java/org/apache/poi/hssf/record/GridsetRecord.java poi/trunk/src/java/org/apache/poi/hssf/record/PageBreakRecord.java poi/trunk/src/java/org/apache/poi/hssf/record/PrecisionRecord.java poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java poi/trunk/src/java/org/apache/poi/hssf/record/common/PhRun.java poi/trunk/src/java/org/apache/poi/poifs/common/POIFSConstants.java poi/trunk/src/java/org/apache/poi/poifs/crypt/agile/AgileDecryptor.java poi/trunk/src/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Decryptor.java poi/trunk/src/java/org/apache/poi/poifs/filesystem/FileMagic.java poi/trunk/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java poi/trunk/src/java/org/apache/poi/ss/formula/SheetIdentifier.java poi/trunk/src/java/org/apache/poi/ss/formula/SheetRangeIdentifier.java poi/trunk/src/java/org/apache/poi/ss/formula/atp/YearFracCalculator.java poi/trunk/src/java/org/apache/poi/ss/formula/functions/LinearRegressionFunction.java poi/trunk/src/java/org/apache/poi/ss/formula/functions/Trend.java poi/trunk/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java poi/trunk/src/java/org/apache/poi/ss/util/cellwalk/CellWalk.java poi/trunk/src/java/org/apache/poi/util/DrawingDump.java poi/trunk/src/java/org/apache/poi/util/IOUtils.java poi/trunk/src/ooxml/java/org/apache/poi/ooxml/extractor/POIXMLExtractorFactory.java poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/IdentifierManager.java poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureLine.java poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometryRowTypes.java poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/XDGFSectionTypes.java poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/geometry/EllipticalArcTo.java poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/DummyGraphics2d.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/ooxml/TestExtractorFactory.java poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextHeaderAtom.java poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/AttachmentChunks.java poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/NameIdChunks.java poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/RecipientChunks.java poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfBinaryRasterOp.java poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfHatchStyle.java poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfPenStyle.java poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfTernaryRasterOp.java poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/FontReplacer.java poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Picture.java poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestNameIdChunks.java poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/datatypes/TestSorters.java poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/parsers/TestPOIFSChunkParser.java poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestSumifs.java Modified: poi/trunk/src/examples/src/org/apache/poi/examples/xslf/LinkVideoToPptx.java URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/examples/xslf/LinkVideoToPptx.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/examples/src/org/apache/poi/examples/xslf/LinkVideoToPptx.java (original) +++ poi/trunk/src/examples/src/org/apache/poi/examples/xslf/LinkVideoToPptx.java Sat Dec 26 00:08:19 2020 @@ -52,66 +52,69 @@ import org.openxmlformats.schemas.presen import org.openxmlformats.schemas.presentationml.x2006.main.STTLTimeNodeRestartType; import org.openxmlformats.schemas.presentationml.x2006.main.STTLTimeNodeType; -public class LinkVideoToPptx { - public static void main(String[] args) throws IOException, URISyntaxException { - XMLSlideShow pptx = new XMLSlideShow(); - - String videoFileName = "file_example_MP4_640_3MG.mp4"; - XSLFSlide slide1 = pptx.createSlide(); +public final class LinkVideoToPptx { + private LinkVideoToPptx() {} - PackagePart pp = slide1.getPackagePart(); - URI mp4uri = new URI("./"+videoFileName); - PackageRelationship prsEmbed1 = pp.addRelationship(mp4uri, TargetMode.EXTERNAL, "http://schemas.microsoft.com/office/2007/relationships/media"); - PackageRelationship prsExec1 = pp.addRelationship(mp4uri, TargetMode.EXTERNAL, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/video"); - - - File previewJpg = new File("preview.jpg"); - XSLFPictureData snap = pptx.addPicture(previewJpg, PictureData.PictureType.JPEG); - XSLFPictureShape pic1 = slide1.createPicture(snap); - pic1.setAnchor(new Rectangle(100, 100, 500, 400)); - - CTPicture xpic1 = (CTPicture)pic1.getXmlObject(); - CTHyperlink link1 = xpic1.getNvPicPr().getCNvPr().addNewHlinkClick(); - link1.setId(""); - link1.setAction("ppaction://media"); - - - CTApplicationNonVisualDrawingProps nvPr = xpic1.getNvPicPr().getNvPr(); - nvPr.addNewVideoFile().setLink(prsExec1.getId()); - CTExtension ext = nvPr.addNewExtLst().addNewExt(); - ext.setUri("{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}"); - - String p14Ns = "http://schemas.microsoft.com/office/powerpoint/2010/main"; - XmlCursor cur = ext.newCursor(); - cur.toEndToken(); - cur.beginElement(new QName(p14Ns, "media", "p14")); - cur.insertNamespace("p14", p14Ns); - cur.insertAttributeWithValue(new QName(CORE_PROPERTIES_ECMA376_NS, "link"), prsEmbed1.getId()); - cur.dispose(); - - - CTSlide xslide = slide1.getXmlObject(); - CTTimeNodeList ctnl; - if (!xslide.isSetTiming()) { - CTTLCommonTimeNodeData ctn = xslide.addNewTiming().addNewTnLst().addNewPar().addNewCTn(); - ctn.setDur(STTLTimeIndefinite.INDEFINITE); - ctn.setRestart(STTLTimeNodeRestartType.NEVER); - ctn.setNodeType(STTLTimeNodeType.TM_ROOT); - ctnl = ctn.addNewChildTnLst(); - } else { - ctnl = xslide.getTiming().getTnLst().getParArray(0).getCTn().getChildTnLst(); - } - CTTLCommonMediaNodeData cmedia = ctnl.addNewVideo().addNewCMediaNode(); - cmedia.setVol(80000); - CTTLCommonTimeNodeData ctn = cmedia.addNewCTn(); - ctn.setFill(STTLTimeNodeFillType.HOLD); - ctn.setDisplay(false); - ctn.addNewStCondLst().addNewCond().setDelay(STTLTimeIndefinite.INDEFINITE); - cmedia.addNewTgtEl().addNewSpTgt().setSpid(pic1.getShapeId()); + public static void main(String[] args) throws IOException, URISyntaxException { + try (XMLSlideShow pptx = new XMLSlideShow()) { + String videoFileName = "file_example_MP4_640_3MG.mp4"; + XSLFSlide slide1 = pptx.createSlide(); - try (FileOutputStream fos = new FileOutputStream("mp4test/mp4test-poi.pptx")) { - pptx.write(fos); + PackagePart pp = slide1.getPackagePart(); + URI mp4uri = new URI("./" + videoFileName); + PackageRelationship prsEmbed1 = pp.addRelationship(mp4uri, TargetMode.EXTERNAL, "http://schemas.microsoft.com/office/2007/relationships/media"); + PackageRelationship prsExec1 = pp.addRelationship(mp4uri, TargetMode.EXTERNAL, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/video"); + + + File previewJpg = new File("preview.jpg"); + XSLFPictureData snap = pptx.addPicture(previewJpg, PictureData.PictureType.JPEG); + XSLFPictureShape pic1 = slide1.createPicture(snap); + pic1.setAnchor(new Rectangle(100, 100, 500, 400)); + + CTPicture xpic1 = (CTPicture) pic1.getXmlObject(); + CTHyperlink link1 = xpic1.getNvPicPr().getCNvPr().addNewHlinkClick(); + link1.setId(""); + link1.setAction("ppaction://media"); + + + CTApplicationNonVisualDrawingProps nvPr = xpic1.getNvPicPr().getNvPr(); + nvPr.addNewVideoFile().setLink(prsExec1.getId()); + CTExtension ext = nvPr.addNewExtLst().addNewExt(); + ext.setUri("{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}"); + + String p14Ns = "http://schemas.microsoft.com/office/powerpoint/2010/main"; + XmlCursor cur = ext.newCursor(); + cur.toEndToken(); + cur.beginElement(new QName(p14Ns, "media", "p14")); + cur.insertNamespace("p14", p14Ns); + cur.insertAttributeWithValue(new QName(CORE_PROPERTIES_ECMA376_NS, "link"), prsEmbed1.getId()); + cur.dispose(); + + + CTSlide xslide = slide1.getXmlObject(); + CTTimeNodeList ctnl; + if (!xslide.isSetTiming()) { + CTTLCommonTimeNodeData ctn = xslide.addNewTiming().addNewTnLst().addNewPar().addNewCTn(); + ctn.setDur(STTLTimeIndefinite.INDEFINITE); + ctn.setRestart(STTLTimeNodeRestartType.NEVER); + ctn.setNodeType(STTLTimeNodeType.TM_ROOT); + ctnl = ctn.addNewChildTnLst(); + } else { + ctnl = xslide.getTiming().getTnLst().getParArray(0).getCTn().getChildTnLst(); + } + CTTLCommonMediaNodeData cmedia = ctnl.addNewVideo().addNewCMediaNode(); + cmedia.setVol(80000); + CTTLCommonTimeNodeData ctn = cmedia.addNewCTn(); + ctn.setFill(STTLTimeNodeFillType.HOLD); + ctn.setDisplay(false); + ctn.addNewStCondLst().addNewCond().setDelay(STTLTimeIndefinite.INDEFINITE); + cmedia.addNewTgtEl().addNewSpTgt().setSpid(pic1.getShapeId()); + + + try (FileOutputStream fos = new FileOutputStream("mp4test/mp4test-poi.pptx")) { + pptx.write(fos); + } } } } Modified: poi/trunk/src/excelant/java/org/apache/poi/ss/excelant/ExcelAntUserDefinedFunction.java URL: http://svn.apache.org/viewvc/poi/trunk/src/excelant/java/org/apache/poi/ss/excelant/ExcelAntUserDefinedFunction.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/excelant/java/org/apache/poi/ss/excelant/ExcelAntUserDefinedFunction.java (original) +++ poi/trunk/src/excelant/java/org/apache/poi/ss/excelant/ExcelAntUserDefinedFunction.java Sat Dec 26 00:08:19 2020 @@ -22,19 +22,19 @@ import org.apache.tools.ant.taskdefs.Typ /** * This class encapsulates the Strings necessary to create the User Defined * Function instances that will be passed to POI's Evaluator instance. - * + * * @author Jon Svede ( jon [at] loquatic [dot] com ) * @author Brian Bush ( brian [dot] bush [at] nrel [dot] gov ) * */ public class ExcelAntUserDefinedFunction extends Typedef { - - public String functionAlias ; - - public String className ; - + private String functionAlias ; + + private String className ; + + public ExcelAntUserDefinedFunction() {} protected String getFunctionAlias() { Modified: poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java (original) +++ poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java Sat Dec 26 00:08:19 2020 @@ -178,6 +178,7 @@ public final class ExtractorFactory { return createExtractor(file, getCurrentUserPassword()); } + @SuppressWarnings({"java:S2095"}) public static POITextExtractor createExtractor(File file, String password) throws IOException { if (file.length() == 0) { throw new EmptyFileException(); @@ -318,6 +319,6 @@ public final class ExtractorFactory { } public static void removeProvider(Class<? extends ExtractorProvider> provider){ - Singleton.INSTANCE.provider.removeIf(p -> p.getClass().getName().equals(provider.getName())); + Singleton.INSTANCE.provider.removeIf(p -> p.getClass().isAssignableFrom(provider)); } } Modified: poi/trunk/src/java/org/apache/poi/extractor/MainExtractorFactory.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/extractor/MainExtractorFactory.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/extractor/MainExtractorFactory.java (original) +++ poi/trunk/src/java/org/apache/poi/extractor/MainExtractorFactory.java Sat Dec 26 00:08:19 2020 @@ -41,6 +41,7 @@ public class MainExtractorFactory implem return FileMagic.OLE2 == fm; } + @SuppressWarnings({"java:S2095"}) @Override public POITextExtractor create(File file, String password) throws IOException { return create(new POIFSFileSystem(file, true).getRoot(), password); Modified: poi/trunk/src/java/org/apache/poi/hssf/dev/ReSave.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/dev/ReSave.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/dev/ReSave.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/dev/ReSave.java Sat Dec 26 00:08:19 2020 @@ -37,7 +37,6 @@ public class ReSave { public static void main(String[] args) throws Exception { boolean initDrawing = false; boolean saveToMemory = false; - ByteArrayOutputStream bos = new ByteArrayOutputStream(); for(String filename : args) { if(filename.equals("-dg")) { initDrawing = true; @@ -45,11 +44,10 @@ public class ReSave { saveToMemory = true; } else { System.out.print("reading " + filename + "..."); - FileInputStream is = new FileInputStream(filename); - HSSFWorkbook wb = new HSSFWorkbook(is); - try { + try (FileInputStream is = new FileInputStream(filename); + HSSFWorkbook wb = new HSSFWorkbook(is)) { System.out.println("done"); - + for(int i = 0; i < wb.getNumberOfSheets(); i++){ HSSFSheet sheet = wb.getSheetAt(i); if(initDrawing) { @@ -57,25 +55,15 @@ public class ReSave { } } - OutputStream os; - if (saveToMemory) { - bos.reset(); - os = bos; - } else { - String outputFile = filename.replace(".xls", "-saved.xls"); + String outputFile = filename.replace(".xls", "-saved.xls"); + if (!saveToMemory) { System.out.print("saving to " + outputFile + "..."); - os = new FileOutputStream(outputFile); } - - try { + + try (OutputStream os = saveToMemory ? new ByteArrayOutputStream() : new FileOutputStream(outputFile)) { wb.write(os); - } finally { - os.close(); } System.out.println("done"); - } finally { - wb.close(); - is.close(); } } } Modified: poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java Sat Dec 26 00:08:19 2020 @@ -1052,7 +1052,7 @@ public final class InternalWorkbook { // Can be a few short if new sheets were added if(records.getTabpos() > 0) { TabIdRecord tir = ( TabIdRecord ) records.get(records.getTabpos()); - if(tir._tabids.length < boundsheets.size()) { + if(tir.getTabIdSize() < boundsheets.size()) { fixTabIdRecord(); } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/GridsetRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/GridsetRecord.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/GridsetRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/GridsetRecord.java Sat Dec 26 00:08:19 2020 @@ -30,7 +30,7 @@ import org.apache.poi.util.LittleEndianO */ public final class GridsetRecord extends StandardRecord { public static final short sid = 0x82; - public short field_1_gridset_flag; + private short field_1_gridset_flag; public GridsetRecord() {} Modified: poi/trunk/src/java/org/apache/poi/hssf/record/PageBreakRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/PageBreakRecord.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/PageBreakRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/PageBreakRecord.java Sat Dec 26 00:08:19 2020 @@ -53,9 +53,9 @@ public abstract class PageBreakRecord ex public static final class Break implements GenericRecord { public static final int ENCODED_SIZE = 6; - public int main; - public int subFrom; - public int subTo; + private int main; + private int subFrom; + private int subTo; public Break(Break other) { main = other.main; @@ -75,6 +75,18 @@ public abstract class PageBreakRecord ex subTo = in.readUShort(); } + public int getMain() { + return main; + } + + public int getSubFrom() { + return subFrom; + } + + public int getSubTo() { + return subTo; + } + public void serialize(LittleEndianOutput out) { out.writeShort(main + 1); out.writeShort(subFrom); Modified: poi/trunk/src/java/org/apache/poi/hssf/record/PrecisionRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/PrecisionRecord.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/PrecisionRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/PrecisionRecord.java Sat Dec 26 00:08:19 2020 @@ -32,7 +32,7 @@ import org.apache.poi.util.LittleEndianO public final class PrecisionRecord extends StandardRecord { public static final short sid = 0xE; - public short field_1_precision; + private short field_1_precision; public PrecisionRecord() {} Modified: poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java Sat Dec 26 00:08:19 2020 @@ -30,7 +30,7 @@ public final class TabIdRecord extends S public static final short sid = 0x013D; private static final short[] EMPTY_SHORT_ARRAY = { }; - public short[] _tabids; + private short[] _tabids; public TabIdRecord() { _tabids = EMPTY_SHORT_ARRAY; @@ -63,6 +63,14 @@ public final class TabIdRecord extends S } } + public int getTabIdSize() { + return _tabids.length; + } + + public short getTabIdAt(int index) { + return _tabids[index]; + } + protected int getDataSize() { return _tabids.length * 2; } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java Sat Dec 26 00:08:19 2020 @@ -121,7 +121,7 @@ public final class PageSettingsBlock ext /** * @param sid the record sid - * + * * @return <code>true</code> if the specified Record sid is one belonging to the * 'Page Settings Block'. */ @@ -486,7 +486,7 @@ public final class PageSettingsBlock ext while(iterator.hasNext()) { PageBreakRecord.Break breakItem = iterator.next(); - int breakLocation = breakItem.main; + int breakLocation = breakItem.getMain(); boolean inStart = (breakLocation >= start); boolean inEnd = (breakLocation <= stop); if(inStart && inEnd) { @@ -497,8 +497,8 @@ public final class PageSettingsBlock ext iterator = shiftedBreak.iterator(); while (iterator.hasNext()) { PageBreakRecord.Break breakItem = iterator.next(); - breaks.removeBreak(breakItem.main); - breaks.addBreak((short)(breakItem.main+count), breakItem.subFrom, breakItem.subTo); + breaks.removeBreak(breakItem.getMain()); + breaks.addBreak((short)(breakItem.getMain()+count), breakItem.getSubFrom(), breakItem.getSubTo()); } } @@ -526,9 +526,9 @@ public final class PageSettingsBlock ext /** * Queries if the specified row has a page break - * + * * @param row the row to check for - * + * * @return true if the specified row has a page break */ public boolean isRowBroken(int row) { @@ -538,7 +538,7 @@ public final class PageSettingsBlock ext /** * Queries if the specified column has a page break - * + * * @param column the column to check for * * @return <code>true</code> if the specified column has a page break @@ -606,7 +606,7 @@ public final class PageSettingsBlock ext /** * HEADERFOOTER is new in 2007. Some apps seem to have scattered this record long after * the {@link PageSettingsBlock} where it belongs. - * + * * @param rec the HeaderFooterRecord to set */ public void addLateHeaderFooter(HeaderFooterRecord rec) { @@ -623,10 +623,10 @@ public final class PageSettingsBlock ext * This method reads PageSettingsBlock records from the supplied RecordStream until the first * non-PageSettingsBlock record is encountered. As each record is read, it is incorporated * into this PageSettingsBlock.<p> - * + * * The latest Excel version seems to write the PageSettingsBlock uninterrupted. However there * are several examples (that Excel reads OK) where these records are not written together: - * + * * <ul> * <li><b>HEADER_FOOTER(0x089C) after WINDOW2</b> - This record is new in 2007. Some apps * seem to have scattered this record long after the PageSettingsBlock where it belongs @@ -635,7 +635,7 @@ public final class PageSettingsBlock ext * This happens in the test sample file "NoGutsRecords.xls" and "WORKBOOK_in_capitals.xls"</li> * <li><b>Margins after DIMENSION</b> - All of PSB should be before DIMENSION. (Bug-47199)</li> * </ul> - * + * * These were probably written by other applications (or earlier versions of Excel). It was * decided to not write specific code for detecting each of these cases. POI now tolerates * PageSettingsBlock records scattered all over the sheet record stream, and in any order, but @@ -646,7 +646,7 @@ public final class PageSettingsBlock ext * were when they were originally read. * * @param rs the RecordStream to read from - * + * * @throws org.apache.poi.util.RecordFormatException if any PSB record encountered has the same type (sid) as * a record that is already part of this PageSettingsBlock */ Modified: poi/trunk/src/java/org/apache/poi/hssf/record/common/PhRun.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/common/PhRun.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/common/PhRun.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/common/PhRun.java Sat Dec 26 00:08:19 2020 @@ -59,4 +59,14 @@ public class PhRun { public int hashCode() { return Objects.hash(phoneticTextFirstCharacterOffset, realTextFirstCharacterOffset, realTextLength); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PhRun phRun = (PhRun) o; + return phoneticTextFirstCharacterOffset == phRun.phoneticTextFirstCharacterOffset + && realTextFirstCharacterOffset == phRun.realTextFirstCharacterOffset + && realTextLength == phRun.realTextLength; + } } Modified: poi/trunk/src/java/org/apache/poi/poifs/common/POIFSConstants.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/common/POIFSConstants.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/poifs/common/POIFSConstants.java (original) +++ poi/trunk/src/java/org/apache/poi/poifs/common/POIFSConstants.java Sat Dec 26 00:08:19 2020 @@ -57,11 +57,4 @@ public interface POIFSConstants int END_OF_CHAIN = -2; /** Indicates the sector is not used (0xFFFFFFFF) */ int UNUSED_BLOCK = -1; - - /** The first 4 bytes of an OOXML file, used in detection */ - byte[] OOXML_FILE_HEADER = - new byte[] { 0x50, 0x4b, 0x03, 0x04 }; - /** The first 5 bytes of a raw XML file, used in detection */ - byte[] RAW_XML_FILE_HEADER = - new byte[] { 0x3c, 0x3f, 0x78, 0x6d, 0x6c }; -} // end public interface POIFSConstants; +} Modified: poi/trunk/src/java/org/apache/poi/poifs/crypt/agile/AgileDecryptor.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/crypt/agile/AgileDecryptor.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/poifs/crypt/agile/AgileDecryptor.java (original) +++ poi/trunk/src/java/org/apache/poi/poifs/crypt/agile/AgileDecryptor.java Sat Dec 26 00:08:19 2020 @@ -205,6 +205,7 @@ public class AgileDecryptor extends Decr } } + @SuppressWarnings({"java:S2095"}) @Override public InputStream getDataStream(DirectoryNode dir) throws IOException, GeneralSecurityException { DocumentInputStream dis = dir.createDocumentInputStream(DEFAULT_POIFS_ENTRY); Modified: poi/trunk/src/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Decryptor.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Decryptor.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Decryptor.java (original) +++ poi/trunk/src/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Decryptor.java Sat Dec 26 00:08:19 2020 @@ -140,7 +140,7 @@ public class BinaryRC4Decryptor extends } @Override - @SuppressWarnings("resource") + @SuppressWarnings({"java:S2095","resource"}) public ChunkedCipherInputStream getDataStream(DirectoryNode dir) throws IOException, GeneralSecurityException { DocumentInputStream dis = dir.createDocumentInputStream(DEFAULT_POIFS_ENTRY); Modified: poi/trunk/src/java/org/apache/poi/poifs/filesystem/FileMagic.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/filesystem/FileMagic.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/poifs/filesystem/FileMagic.java (original) +++ poi/trunk/src/java/org/apache/poi/poifs/filesystem/FileMagic.java Sat Dec 26 00:08:19 2020 @@ -17,9 +17,6 @@ package org.apache.poi.poifs.filesystem; -import static org.apache.poi.poifs.common.POIFSConstants.OOXML_FILE_HEADER; -import static org.apache.poi.poifs.common.POIFSConstants.RAW_XML_FILE_HEADER; - import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; @@ -39,24 +36,24 @@ import org.apache.poi.util.LocaleUtil; public enum FileMagic { /** OLE2 / BIFF8+ stream used for Office 97 and higher documents */ OLE2(HeaderBlockConstants._signature), - /** OOXML / ZIP stream */ - OOXML(OOXML_FILE_HEADER), - /** XML file */ - XML(RAW_XML_FILE_HEADER), + /** OOXML / ZIP stream - The first 4 bytes of an OOXML file, used in detection */ + OOXML(0x50, 0x4b, 0x03, 0x04), + /** XML file - The first 5 bytes of a raw XML file, used in detection */ + XML(0x3c, 0x3f, 0x78, 0x6d, 0x6c), /** BIFF2 raw stream - for Excel 2 */ - BIFF2(new byte[]{ + BIFF2( 0x09, 0x00, // sid=0x0009 0x04, 0x00, // size=0x0004 0x00, 0x00, // unused '?', 0x00 // '?' = multiple values - }), + ), /** BIFF3 raw stream - for Excel 3 */ - BIFF3(new byte[]{ + BIFF3( 0x09, 0x02, // sid=0x0209 0x06, 0x00, // size=0x0006 0x00, 0x00, // unused '?', 0x00 // '?' = multiple values - }), + ), /** BIFF4 raw stream - for Excel 4 */ BIFF4(new byte[]{ 0x09, 0x04, // sid=0x0409 @@ -81,7 +78,7 @@ public enum FileMagic { HTML("<!DOCTYP", "<html","\n\r<html","\r\n<html","\r<html","\n<html", "<HTML","\r\n<HTML","\n\r<HTML","\r<HTML","\n<HTML"), - WORD2(new byte[]{ (byte)0xdb, (byte)0xa5, 0x2d, 0x00}), + WORD2(0xdb, 0xa5, 0x2d, 0x00), /** JPEG image */ JPEG( new byte[]{ (byte)0xFF, (byte)0xD8, (byte)0xFF, (byte)0xDB }, @@ -91,20 +88,18 @@ public enum FileMagic { /** GIF image */ GIF("GIF87a","GIF89a"), /** PNG Image */ - PNG(new byte[]{ (byte)0x89, 'P', 'N', 'G', 0x0D, 0x0A, 0x1A, 0x0A }), + PNG(0x89, 'P', 'N', 'G', 0x0D, 0x0A, 0x1A, 0x0A), /** TIFF Image */ TIFF("II*\u0000", "MM\u0000*" ), /** WMF image with a placeable header */ - WMF(new byte[]{ (byte)0xD7, (byte)0xCD, (byte)0xC6, (byte)0x9A }), + WMF(0xD7, 0xCD, 0xC6, 0x9A), /** EMF image */ - EMF(new byte[]{ - 1, 0, 0, 0, + EMF(1, 0, 0, 0, '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', - ' ', 'E', 'M', 'F' - }), + ' ', 'E', 'M', 'F'), /** BMP image */ - BMP(new byte[]{'B','M'}), + BMP('B','M'), // keep UNKNOWN always as last enum! /** UNKNOWN magic */ UNKNOWN(new byte[0]); @@ -119,6 +114,14 @@ public enum FileMagic { LittleEndian.putLong(this.magic[0], 0, magic); } + FileMagic(int... magic) { + byte[] one = new byte[magic.length]; + for (int i=0; i<magic.length; i++) { + one[i] = (byte)(magic[i] & 0xFF); + } + this.magic = new byte[][]{ one }; + } + FileMagic(byte[]... magic) { this.magic = magic; } Modified: poi/trunk/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java (original) +++ poi/trunk/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java Sat Dec 26 00:08:19 2020 @@ -204,6 +204,7 @@ public class POIFSFileSystem extends Blo this(channel, null, readOnly, false); } + @SuppressWarnings("java:S2095") private POIFSFileSystem(FileChannel channel, File srcFile, boolean readOnly, boolean closeChannelOnError) throws IOException { this(false); Modified: poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java (original) +++ poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java Sat Dec 26 00:08:19 2020 @@ -177,7 +177,7 @@ public class DrawTextParagraph implement penY -= line.getLayout().getAscent(); } - penX = x + (isHSLF ? leftMargin : leftMargin); + penX = x + leftMargin; if (lastLine == null) { if (!isEmptyParagraph()) { // TODO: find out character style for empty, but bulleted/numbered lines Modified: poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java (original) +++ poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java Sat Dec 26 00:08:19 2020 @@ -298,7 +298,7 @@ public final class SlideShowFactory { Singleton.INSTANCE.provider.add(provider); } - public static void removeProvider(Class<? extends SlideShowProvider> provider){ - Singleton.INSTANCE.provider.removeIf(p -> p.getClass().getName().equals(provider.getName())); + public static void removeProvider(Class<? extends SlideShowProvider<?,?>> provider){ + Singleton.INSTANCE.provider.removeIf(p -> p.getClass().isAssignableFrom(provider)); } } Modified: poi/trunk/src/java/org/apache/poi/ss/formula/SheetIdentifier.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/SheetIdentifier.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/SheetIdentifier.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/SheetIdentifier.java Sat Dec 26 00:08:19 2020 @@ -18,8 +18,8 @@ package org.apache.poi.ss.formula; public class SheetIdentifier { - public String _bookName; - public NameIdentifier _sheetIdentifier; + private final String _bookName; + private final NameIdentifier _sheetIdentifier; public SheetIdentifier(String bookName, NameIdentifier sheetIdentifier) { _bookName = bookName; Modified: poi/trunk/src/java/org/apache/poi/ss/formula/SheetRangeIdentifier.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/SheetRangeIdentifier.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/SheetRangeIdentifier.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/SheetRangeIdentifier.java Sat Dec 26 00:08:19 2020 @@ -18,7 +18,7 @@ package org.apache.poi.ss.formula; public class SheetRangeIdentifier extends SheetIdentifier { - public NameIdentifier _lastSheetIdentifier; + private final NameIdentifier _lastSheetIdentifier; public SheetRangeIdentifier(String bookName, NameIdentifier firstSheetIdentifier, NameIdentifier lastSheetIdentifier) { super(bookName, firstSheetIdentifier); Modified: poi/trunk/src/java/org/apache/poi/ss/formula/atp/YearFracCalculator.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/atp/YearFracCalculator.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/atp/YearFracCalculator.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/atp/YearFracCalculator.java Sat Dec 26 00:08:19 2020 @@ -324,7 +324,7 @@ final class YearFracCalculator { /** day of month */ public final int day; /** milliseconds since 1970 */ - public long tsMilliseconds; + public final long tsMilliseconds; public SimpleDate(Calendar cal) { year = cal.get(Calendar.YEAR); Modified: poi/trunk/src/java/org/apache/poi/ss/formula/functions/LinearRegressionFunction.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/functions/LinearRegressionFunction.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/functions/LinearRegressionFunction.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/functions/LinearRegressionFunction.java Sat Dec 26 00:08:19 2020 @@ -107,7 +107,7 @@ public final class LinearRegressionFunct } public enum FUNCTION {INTERCEPT, SLOPE} - public FUNCTION function; + private final FUNCTION function; public LinearRegressionFunction(FUNCTION function) { this.function = function; Modified: poi/trunk/src/java/org/apache/poi/ss/formula/functions/Trend.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/functions/Trend.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/functions/Trend.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/functions/Trend.java Sat Dec 26 00:08:19 2020 @@ -60,11 +60,10 @@ import org.apache.poi.ss.formula.eval.Va */ public final class Trend implements Function { - MatrixFunction.MutableValueCollector collector = new MatrixFunction.MutableValueCollector(false, false); private static final class TrendResults { - public double[] vals; - public int resultWidth; - public int resultHeight; + private final double[] vals; + private final int resultWidth; + private final int resultHeight; public TrendResults(double[] vals, int resultWidth, int resultHeight) { this.vals = vals; @@ -149,7 +148,7 @@ public final class Trend implements Func } double[] oneD = new double[twoD.length * twoD[0].length]; for (int i = 0; i < twoD.length; i++) { - System.arraycopy(twoD[i], 0, oneD, i * twoD[0].length + 0, twoD[0].length); + System.arraycopy(twoD[i], 0, oneD, i * twoD[0].length, twoD[0].length); } return oneD; } @@ -335,7 +334,7 @@ public final class Trend implements Func if(isAllColumnsSame(x)){ double[] result = new double[newX.length]; double avg = Arrays.stream(y).average().orElse(0); - for(int i = 0; i < result.length; i++) result[i] = avg; + Arrays.fill(result, avg); return new TrendResults(result, resultWidth, resultHeight); } Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java Sat Dec 26 00:08:19 2020 @@ -305,6 +305,6 @@ public final class WorkbookFactory { } public static void removeProvider(Class<? extends WorkbookProvider> provider){ - Singleton.INSTANCE.provider.removeIf(p -> p.getClass().getName().equals(provider.getName())); + Singleton.INSTANCE.provider.removeIf(p -> p.getClass().isAssignableFrom(provider)); } } Modified: poi/trunk/src/java/org/apache/poi/ss/util/cellwalk/CellWalk.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/cellwalk/CellWalk.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/util/cellwalk/CellWalk.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/util/cellwalk/CellWalk.java Sat Dec 26 00:08:19 2020 @@ -17,6 +17,10 @@ package org.apache.poi.ss.util.cellwalk; +import static org.apache.commons.math3.util.ArithmeticUtils.addAndCheck; +import static org.apache.commons.math3.util.ArithmeticUtils.mulAndCheck; +import static org.apache.commons.math3.util.ArithmeticUtils.subAndCheck; + import org.apache.commons.math3.util.ArithmeticUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; @@ -26,13 +30,11 @@ import org.apache.poi.ss.util.CellRangeA /** * Traverse cell range. - * - * @author Roman Kashitsyn */ public class CellWalk { - private Sheet sheet; - private CellRangeAddress range; + private final Sheet sheet; + private final CellRangeAddress range; private boolean traverseEmptyCells; @@ -74,8 +76,8 @@ public class CellWalk { int lastColumn = range.getLastColumn(); final int width = lastColumn - firstColumn + 1; SimpleCellWalkContext ctx = new SimpleCellWalkContext(); - Row currentRow = null; - Cell currentCell = null; + Row currentRow; + Cell currentCell; for (ctx.rowNumber = firstRow; ctx.rowNumber <= lastRow; ++ctx.rowNumber) { currentRow = sheet.getRow(ctx.rowNumber); @@ -92,10 +94,9 @@ public class CellWalk { continue; } - long rowSize = ArithmeticUtils.mulAndCheck( - (long)ArithmeticUtils.subAndCheck(ctx.rowNumber, firstRow), (long)width); + long rowSize = mulAndCheck(subAndCheck(ctx.rowNumber, firstRow), (long)width); - ctx.ordinalNumber = ArithmeticUtils.addAndCheck(rowSize, (ctx.colNumber - firstColumn + 1)); + ctx.ordinalNumber = addAndCheck(rowSize, (ctx.colNumber - firstColumn + 1)); handler.onCell(currentCell, ctx); } @@ -108,13 +109,11 @@ public class CellWalk { /** * Inner class to hold walk context. - * - * @author Roman Kashitsyn */ private static class SimpleCellWalkContext implements CellWalkContext { - public long ordinalNumber; - public int rowNumber; - public int colNumber; + private long ordinalNumber; + private int rowNumber; + private int colNumber; @Override public long getOrdinalNumber() { Modified: poi/trunk/src/java/org/apache/poi/util/DrawingDump.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/DrawingDump.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/util/DrawingDump.java (original) +++ poi/trunk/src/java/org/apache/poi/util/DrawingDump.java Sat Dec 26 00:08:19 2020 @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and limitations under the License. ==================================================================== */ - + package org.apache.poi.util; import java.io.File; @@ -37,23 +37,20 @@ public final class DrawingDump { } public static void main( String[] args ) throws IOException { - OutputStreamWriter osw = new OutputStreamWriter(System.out, Charset.defaultCharset()); - PrintWriter pw = new PrintWriter(osw); - POIFSFileSystem fs = new POIFSFileSystem(new File(args[0])); - HSSFWorkbook wb = new HSSFWorkbook(fs); - try { + try (OutputStreamWriter osw = new OutputStreamWriter(System.out, Charset.defaultCharset()); + PrintWriter pw = new PrintWriter(osw); + POIFSFileSystem fs = new POIFSFileSystem(new File(args[0])); + HSSFWorkbook wb = new HSSFWorkbook(fs)) { + pw.println( "Drawing group:" ); wb.dumpDrawingGroupRecords(true); - + int i = 1; for (Sheet sheet : wb) { pw.println( "Sheet " + i + "(" + sheet.getSheetName() + "):" ); ((HSSFSheet) sheet).dumpDrawingRecords(true, pw); } - } finally { - wb.close(); - fs.close(); } } } Modified: poi/trunk/src/java/org/apache/poi/util/IOUtils.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/IOUtils.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/util/IOUtils.java (original) +++ poi/trunk/src/java/org/apache/poi/util/IOUtils.java Sat Dec 26 00:08:19 2020 @@ -162,13 +162,13 @@ public final class IOUtils { * @return A byte array with the read bytes. * @throws IOException If reading data fails or EOF is encountered too early for the given length. */ - public static byte[] toByteArray(InputStream stream, final long length, final int maxLength) throws IOException { + public static byte[] toByteArray(InputStream stream, final int length, final int maxLength) throws IOException { if (length < 0L || maxLength < 0L) { throw new RecordFormatException("Can't allocate an array of length < 0"); } - if (length > (long)Integer.MAX_VALUE) { - throw new RecordFormatException("Can't allocate an array > "+Integer.MAX_VALUE); - } + // if (length > (long)Integer.MAX_VALUE) { + // throw new RecordFormatException("Can't allocate an array > "+Integer.MAX_VALUE); + // } if ((length != Integer.MAX_VALUE) || (maxLength != Integer.MAX_VALUE)) { checkLength(length, maxLength); } Modified: poi/trunk/src/ooxml/java/org/apache/poi/ooxml/extractor/POIXMLExtractorFactory.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/ooxml/extractor/POIXMLExtractorFactory.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/ooxml/extractor/POIXMLExtractorFactory.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/ooxml/extractor/POIXMLExtractorFactory.java Sat Dec 26 00:08:19 2020 @@ -124,7 +124,6 @@ public final class POIXMLExtractorFactor return ExtractorFactory.createExtractor(f, password); } - OPCPackage pkg = null; try { pkg = OPCPackage.open(f.toString(), PackageAccess.READ); @@ -136,7 +135,9 @@ public final class POIXMLExtractorFactor } catch (InvalidFormatException ife) { throw new IOException(ife); } catch (IOException e) { - pkg.revert(); + if (pkg != null) { + pkg.revert(); + } throw e; } } Modified: poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/IdentifierManager.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/IdentifierManager.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/IdentifierManager.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/IdentifierManager.java Sat Dec 26 00:08:19 2020 @@ -19,28 +19,12 @@ package org.apache.poi.ooxml.util; import java.util.LinkedList; import java.util.ListIterator; -/** - * <p> - * 24.08.2009<br> - * </p> - * - * @author Stefan Stern<br> - */ - public class IdentifierManager { public static final long MAX_ID = Long.MAX_VALUE - 1; - public static final long MIN_ID = 0L; - /** - * - */ private final long upperbound; - - /** - * - */ private final long lowerbound; /** @@ -56,7 +40,7 @@ public class IdentifierManager { if (lowerbound > upperbound) { throw new IllegalArgumentException("lowerbound must not be greater than upperbound, had " + lowerbound + " and " + upperbound); } - else if (lowerbound < MIN_ID) { + else if (lowerbound < MIN_ID) { String message = "lowerbound must be greater than or equal to " + Long.toString(MIN_ID); throw new IllegalArgumentException(message); } @@ -78,7 +62,7 @@ public class IdentifierManager { throw new IllegalArgumentException("Value for parameter 'id' was out of bounds, had " + id + ", but should be within [" + lowerbound + ":" + upperbound + "]"); } verifyIdentifiersLeft(); - + if (id == upperbound) { Segment lastSegment = segments.getLast(); if (lastSegment.end == upperbound) { @@ -136,7 +120,7 @@ public class IdentifierManager { } /** - * @return a new identifier. + * @return a new identifier. * @throws IllegalStateException if no more identifiers are available, then an Exception is raised. */ public long reserveNew() { @@ -236,7 +220,7 @@ public class IdentifierManager { } /** - * + * */ private void verifyIdentifiersLeft() { if (segments.isEmpty()) { @@ -245,20 +229,14 @@ public class IdentifierManager { } private static class Segment { + private long start; + private long end; public Segment(long start, long end) { this.start = start; this.end = end; } - public long start; - public long end; - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ public String toString() { return "[" + start + "; " + end + "]"; } Modified: poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureLine.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureLine.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureLine.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureLine.java Sat Dec 26 00:08:19 2020 @@ -386,7 +386,7 @@ public abstract class SignatureLine { int mpos = measurer.getPosition(); int limit = text.indexOf('\n', mpos); limit = (limit == -1) ? text.length() : limit+1; - TextLayout textLayout = measurer.nextLayout(bi.getWidth()-10, limit, false); + TextLayout textLayout = measurer.nextLayout(bi.getWidth()-10f, limit, false); if (lineNr != 1) { y += textLayout.getAscent(); } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometryRowTypes.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometryRowTypes.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometryRowTypes.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometryRowTypes.java Sat Dec 26 00:08:19 2020 @@ -62,8 +62,8 @@ enum GeometryRowTypes { SPLINE_START("SplineStart", SplineStart::new) ; - public String rowType; - public Function<RowType, ? extends GeometryRow> constructor; + private final String rowType; + private final Function<RowType, ? extends GeometryRow> constructor; GeometryRowTypes(String rowType, Function<RowType, ? extends GeometryRow> constructor) { this.rowType = rowType; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/XDGFSectionTypes.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/XDGFSectionTypes.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/XDGFSectionTypes.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/XDGFSectionTypes.java Sat Dec 26 00:08:19 2020 @@ -50,8 +50,8 @@ enum XDGFSectionTypes { ANNOTATION("Annotation", GenericSection::new), ACTION_TAG("ActionTag", GenericSection::new); - public String sectionType; - public BiFunction<SectionType, XDGFSheet, ? extends XDGFSection> constructor; + private final String sectionType; + private final BiFunction<SectionType, XDGFSheet, ? extends XDGFSection> constructor; XDGFSectionTypes(String sectionType, BiFunction<SectionType, XDGFSheet, ? extends XDGFSection> constructor) { this.sectionType = sectionType; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/geometry/EllipticalArcTo.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/geometry/EllipticalArcTo.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/geometry/EllipticalArcTo.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/geometry/EllipticalArcTo.java Sat Dec 26 00:08:19 2020 @@ -126,8 +126,6 @@ public class EllipticalArcTo implements _master = (EllipticalArcTo) row; } - public static int draw; - @Override public void addToPath(java.awt.geom.Path2D.Double path, XDGFShape parent) { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/DummyGraphics2d.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/DummyGraphics2d.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/DummyGraphics2d.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/DummyGraphics2d.java Sat Dec 26 00:08:19 2020 @@ -809,6 +809,7 @@ public class DummyGraphics2d extends Gra log.println( "finalize():" ); g2D.dispose(); dispose(); + super.finalize(); } public Shape getClip() { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java Sat Dec 26 00:08:19 2020 @@ -30,7 +30,7 @@ import org.apache.poi.util.LittleEndianC */ @Internal class XSSFBCellHeader { - public static int length = 8; + public static final int length = 8; /** * Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java Sat Dec 26 00:08:19 2020 @@ -70,7 +70,7 @@ public abstract class BaseXSSFEvaluation public void clearAllCachedResultValues() { _tableCache = null; } - + private int convertFromExternalSheetIndex(int externSheetIndex) { return externSheetIndex; } @@ -113,16 +113,16 @@ public abstract class BaseXSSFEvaluation List<ExternalLinksTable> tables = _uBook.getExternalLinksTable(); int index = findExternalLinkIndex(bookName, tables); if (index != -1) return index; - + // Is it an absolute file reference? if (bookName.startsWith("'file:///") && bookName.endsWith("'")) { String relBookName = bookName.substring(bookName.lastIndexOf('/')+1); relBookName = relBookName.substring(0, relBookName.length()-1); // Trailing ' - + // Try with this name index = findExternalLinkIndex(relBookName, tables); if (index != -1) return index; - + // If we get here, it's got no associated proper links yet // So, add the missing reference and return // Note - this is really rather nasty... @@ -130,7 +130,7 @@ public abstract class BaseXSSFEvaluation tables.add(fakeLinkTable); return tables.size(); // 1 based results, 0 = current workbook } - + // Not properly referenced throw new RuntimeException("Book not linked for filename " + bookName); } @@ -162,7 +162,7 @@ public abstract class BaseXSSFEvaluation * @param sheetIndex index of sheet if named range scope is limited to one sheet * if named range scope is global to the workbook, sheetIndex is -1. * @return If name is a named range in the workbook, returns - * EvaluationName corresponding to that named range + * EvaluationName corresponding to that named range * Returns null if there is no named range with the same name and scope in the workbook */ @Override @@ -171,7 +171,7 @@ public abstract class BaseXSSFEvaluation XSSFName nm = _uBook.getNameAt(i); String nameText = nm.getNameName(); int nameSheetindex = nm.getSheetIndex(); - if (name.equalsIgnoreCase(nameText) && + if (name.equalsIgnoreCase(nameText) && (nameSheetindex == -1 || nameSheetindex == sheetIndex)) { return new Name(nm, i, this); } @@ -183,7 +183,7 @@ public abstract class BaseXSSFEvaluation public String getSheetName(int sheetIndex) { return _uBook.getSheetName(sheetIndex); } - + @Override public ExternalName getExternalName(int externSheetIndex, int externNameIndex) { throw new IllegalStateException("HSSF-style external references are not supported for XSSF"); @@ -195,13 +195,13 @@ public abstract class BaseXSSFEvaluation // External reference - reference is 1 based, link table is 0 based int linkNumber = externalWorkbookNumber - 1; ExternalLinksTable linkTable = _uBook.getExternalLinksTable().get(linkNumber); - + for (org.apache.poi.ss.usermodel.Name name : linkTable.getDefinedNames()) { if (name.getNameName().equals(nameName)) { // HSSF returns one sheet higher than normal, and various bits // of the code assume that. So, make us match that behaviour! int nameSheetIndex = name.getSheetIndex() + 1; - + // TODO Return a more specialised form of this, see bug #56752 // Should include the cached values, for in case that book isn't available // Should support XSSF stuff lookups @@ -215,7 +215,7 @@ public abstract class BaseXSSFEvaluation int nameIdx = _uBook.getNameIndex(nameName); return new ExternalName(nameName, nameIdx, 0); // TODO Is this right? } - + } /** @@ -229,7 +229,7 @@ public abstract class BaseXSSFEvaluation if (func != null) { return new NameXPxg(null, name); } - + // Otherwise, try it as a named range if (sheet == null) { if (!_uBook.getNames(name).isEmpty()) { @@ -237,17 +237,17 @@ public abstract class BaseXSSFEvaluation } return null; } - if (sheet._sheetIdentifier == null) { + if (sheet.getSheetIdentifier() == null) { // Workbook + Named Range only - int bookIndex = resolveBookIndex(sheet._bookName); + int bookIndex = resolveBookIndex(sheet.getBookName()); return new NameXPxg(bookIndex, null, name); } // Use the sheetname and process - String sheetName = sheet._sheetIdentifier.getName(); - - if (sheet._bookName != null) { - int bookIndex = resolveBookIndex(sheet._bookName); + String sheetName = sheet.getSheetIdentifier().getName(); + + if (sheet.getBookName() != null) { + int bookIndex = resolveBookIndex(sheet.getBookName()); return new NameXPxg(bookIndex, sheetName, name); } else { return new NameXPxg(sheetName, name); @@ -255,8 +255,8 @@ public abstract class BaseXSSFEvaluation } @Override public Ptg get3DReferencePtg(CellReference cell, SheetIdentifier sheet) { - if (sheet._bookName != null) { - int bookIndex = resolveBookIndex(sheet._bookName); + if (sheet.getBookName() != null) { + int bookIndex = resolveBookIndex(sheet.getBookName()); return new Ref3DPxg(bookIndex, sheet, cell); } else { return new Ref3DPxg(sheet, cell); @@ -264,8 +264,8 @@ public abstract class BaseXSSFEvaluation } @Override public Ptg get3DReferencePtg(AreaReference area, SheetIdentifier sheet) { - if (sheet._bookName != null) { - int bookIndex = resolveBookIndex(sheet._bookName); + if (sheet.getBookName() != null) { + int bookIndex = resolveBookIndex(sheet.getBookName()); return new Area3DPxg(bookIndex, sheet, area); } else { return new Area3DPxg(sheet, area); @@ -276,18 +276,18 @@ public abstract class BaseXSSFEvaluation public String resolveNameXText(NameXPtg n) { int idx = n.getNameIndex(); String name = null; - + // First, try to find it as a User Defined Function IndexedUDFFinder udfFinder = (IndexedUDFFinder)getUDFFinder(); name = udfFinder.getFunctionName(idx); if (name != null) return name; - + // Otherwise, try it as a named range XSSFName xname = _uBook.getNameAt(idx); if (xname != null) { name = xname.getNameName(); } - + return name; } @@ -307,7 +307,7 @@ public abstract class BaseXSSFEvaluation // Internal reference workbookName = null; } - + if (lastSheetName == null || firstSheetName.equals(lastSheetName)) { return new ExternalSheet(workbookName, firstSheetName); } else { @@ -385,7 +385,7 @@ public abstract class BaseXSSFEvaluation * Tables are cached for performance (formula evaluation looks them up by name repeatedly). * After the first table lookup, adding or removing a table from the document structure will cause trouble. * This is meant to be used on documents whose structure is essentially static at the point formulas are evaluated. - * + * * @param name the data table name (case-insensitive) * @return The Data table in the workbook named <tt>name</tt>, or <tt>null</tt> if no table is named <tt>name</tt>. * @since 3.15 beta 2 @@ -396,7 +396,7 @@ public abstract class BaseXSSFEvaluation String lname = caseInsensitive(name); return getTableCache().get(lname); } - + @Override public UDFFinder getUDFFinder(){ return _uBook.getUDFFinder(); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/ooxml/TestExtractorFactory.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/ooxml/TestExtractorFactory.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/ooxml/TestExtractorFactory.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/ooxml/TestExtractorFactory.java Sat Dec 26 00:08:19 2020 @@ -165,10 +165,8 @@ public class TestExtractorFactory { @Test public void testPOIFSInvalid() { - IOException ex = assertThrows( - IOException.class, - () -> ExtractorFactory.createExtractor(new POIFSFileSystem(txt)) - ); + // Not really an Extractor test, but we'll leave it to test POIFS reaction anyway ... + IOException ex = assertThrows(IOException.class, () -> new POIFSFileSystem(txt)); assertTrue(ex.getMessage().contains("Invalid header signature; read 0x3D20726F68747541, expected 0xE11AB1A1E011CFD0")); } Modified: poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java Sat Dec 26 00:08:19 2020 @@ -65,6 +65,7 @@ public class OLE2ScratchpadExtractorFact return FileMagic.OLE2 == fm; } + @SuppressWarnings("java:S2095") @Override public POITextExtractor create(File file, String password) throws IOException { return create(new POIFSFileSystem(file, true).getRoot(), password); Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java Sat Dec 26 00:08:19 2020 @@ -355,7 +355,7 @@ public class HemfPlusBrush { size += LittleEndianConsts.INT_SIZE; } - brushBytes = IOUtils.toByteArray(leis, dataSize-size, MAX_OBJECT_SIZE); + brushBytes = IOUtils.toByteArray(leis, (int)(dataSize-size), MAX_OBJECT_SIZE); return dataSize; } Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java Sat Dec 26 00:08:19 2020 @@ -708,7 +708,7 @@ public final class HemfPlusDraw { // If the CMAP_LOOKUP flag in the optionsFlags field is set, each value in this array specifies a // Unicode character. Otherwise, each value specifies an index to a character glyph in the EmfPlusFont // object specified by the ObjectId value in Flags field. - byte[] glyphBuf = IOUtils.toByteArray(leis, glyphCount*2L, MAX_OBJECT_SIZE); + byte[] glyphBuf = IOUtils.toByteArray(leis, glyphCount*2, MAX_OBJECT_SIZE); glyphs = StringUtil.getFromUnicodeLE(glyphBuf); size += glyphBuf.length; Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java Sat Dec 26 00:08:19 2020 @@ -265,7 +265,7 @@ public class HemfPlusObject { long size = graphicsVersion.init(leis); - objectDataBytes = IOUtils.toByteArray(leis, dataSize - size, MAX_OBJECT_SIZE); + objectDataBytes = IOUtils.toByteArray(leis, (int)(dataSize - size), MAX_OBJECT_SIZE); return dataSize; } Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java Sat Dec 26 00:08:19 2020 @@ -35,7 +35,7 @@ public class ExEmbed extends RecordConta private final byte[] _header; // Links to our more interesting children - public org.apache.poi.hslf.record.RecordAtom embedAtom; + private org.apache.poi.hslf.record.RecordAtom embedAtom; private ExOleObjAtom oleObjAtom; private CString menuName; private CString progId; Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextHeaderAtom.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextHeaderAtom.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextHeaderAtom.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextHeaderAtom.java Sat Dec 26 00:08:19 2020 @@ -37,7 +37,7 @@ import org.apache.poi.util.LittleEndian; public final class TextHeaderAtom extends RecordAtom implements ParentAwareRecord { public static final long _type = RecordTypes.TextHeaderAtom.typeID; private byte[] _header; - public org.apache.poi.hslf.record.RecordContainer parentRecord; + private org.apache.poi.hslf.record.RecordContainer parentRecord; /** The kind of text it is */ private int textType; Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/AttachmentChunks.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/AttachmentChunks.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/AttachmentChunks.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/AttachmentChunks.java Sat Dec 26 00:08:19 2020 @@ -54,15 +54,15 @@ public class AttachmentChunks implements * This is in WMF Format. You'll probably want to pass it to Apache Batik to * turn it into a SVG that you can then display. */ - public ByteChunk attachRenderingWMF; + private ByteChunk attachRenderingWMF; /** * What the POIFS name of this attachment is. */ - private String poifsName; + private final String poifsName; /** Holds all the chunks that were found. */ - private List<Chunk> allChunks = new ArrayList<>(); + private final List<Chunk> allChunks = new ArrayList<>(); public AttachmentChunks(String poifsName) { this.poifsName = poifsName; Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/NameIdChunks.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/NameIdChunks.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/NameIdChunks.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/NameIdChunks.java Sat Dec 26 00:08:19 2020 @@ -39,10 +39,14 @@ public final class NameIdChunks implemen PS_PUBLIC_STRINGS("00020329-0000-0000-C000-000000000046"), PS_INTERNET_HEADERS("00020386-0000-0000-C000-000000000046"); - public ClassID classID; + private final ClassID classID; PropertySetType(String uuid) { classID = new ClassID(uuid); } + + public ClassID getClassID() { + return classID; + } } public enum PredefinedPropertySet { @@ -61,10 +65,14 @@ public final class NameIdChunks implemen PSETID_XML_EXTRACTED_ENTITIES("23239608-685D-4732-9C55-4C95CB4E8E33"), PSETID_ATTACHMENT("96357F7F-59E1-47D0-99A7-46515C183B54"); - public ClassID classID; + private final ClassID classID; PredefinedPropertySet(String uuid) { classID = new ClassID(uuid); } + + public ClassID getClassID() { + return classID; + } } private ByteChunk guidStream; Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/RecipientChunks.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/RecipientChunks.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/RecipientChunks.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/RecipientChunks.java Sat Dec 26 00:08:19 2020 @@ -29,7 +29,7 @@ import org.apache.poi.util.POILogger; /** * Collection of convenience chunks for the Recip(ient) part of an outlook file. - * + * * If a message has multiple recipients, there will be several of these. */ public final class RecipientChunks implements ChunkGroupWithProperties { @@ -45,35 +45,35 @@ public final class RecipientChunks imple public static final MAPIProperty RECIPIENT_DISPLAY_NAME = MAPIProperty.RECIPIENT_DISPLAY_NAME; /** Our 0 based position in the list of recipients */ - public int recipientNumber; + private int recipientNumber; /** TODO */ - public ByteChunk recipientSearchChunk; + private ByteChunk recipientSearchChunk; /** * The "name", which could be their name if an internal person, or their * email address if an external person */ - public StringChunk recipientNameChunk; + private StringChunk recipientNameChunk; /** * The email address of the recipient, which could be in SMTP or SEARCH * format, but isn't always present... */ - public StringChunk recipientEmailChunk; + private StringChunk recipientEmailChunk; /** * The smtp destination email address of the recipient, but isn't always * present... */ - public StringChunk recipientSMTPChunk; + private StringChunk recipientSMTPChunk; /** * Normally EX or SMTP. Will generally affect where the email address ends * up. */ - public StringChunk deliveryTypeChunk; + private StringChunk deliveryTypeChunk; /** * The display name of the recipient. Normally seems to hold the same value * as in recipientNameChunk */ - public StringChunk recipientDisplayNameChunk; + private StringChunk recipientDisplayNameChunk; /** * Holds the fixed sized properties, and the pointers to the data of * variable sized ones @@ -93,6 +93,34 @@ public final class RecipientChunks imple } } + public int getRecipientNumber() { + return recipientNumber; + } + + public ByteChunk getRecipientSearchChunk() { + return recipientSearchChunk; + } + + public StringChunk getRecipientNameChunk() { + return recipientNameChunk; + } + + public StringChunk getRecipientEmailChunk() { + return recipientEmailChunk; + } + + public StringChunk getRecipientSMTPChunk() { + return recipientSMTPChunk; + } + + public StringChunk getDeliveryTypeChunk() { + return deliveryTypeChunk; + } + + public StringChunk getRecipientDisplayNameChunk() { + return recipientDisplayNameChunk; + } + /** * Tries to find their name, in whichever chunk holds it. */ Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java Sat Dec 26 00:08:19 2020 @@ -256,7 +256,7 @@ public class HwmfGraphics implements Hwm protected Paint getHatchedFill() { HwmfDrawProperties prop = getProperties(); BufferedImage pattern = getPatternFromLong( - prop.getBrushHatch().pattern, + prop.getBrushHatch().getPattern(), prop.getBackgroundColor().getColor(), prop.getBrushColor().getColor(), prop.getBkMode() == HwmfBkMode.TRANSPARENT Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfBinaryRasterOp.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfBinaryRasterOp.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfBinaryRasterOp.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfBinaryRasterOp.java Sat Dec 26 00:08:19 2020 @@ -97,14 +97,18 @@ public enum HwmfBinaryRasterOp { /** 1, Pixel is always 1 */ R2_WHITE(0x0010, HwmfBinaryRasterOp::R2_WHITE); - public int opIndex; - private BiConsumer<int[],int[]> op; + private final int opIndex; + private final BiConsumer<int[],int[]> op; HwmfBinaryRasterOp(int opIndex, BiConsumer<int[],int[]> op) { this.opIndex = opIndex; this.op = op; } + public int getOpIndex() { + return opIndex; + } + public static HwmfBinaryRasterOp valueOf(int opIndex) { for (HwmfBinaryRasterOp bb : HwmfBinaryRasterOp.values()) { if (bb.opIndex == opIndex) { Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java Sat Dec 26 00:08:19 2020 @@ -163,9 +163,9 @@ public class HwmfEscape implements HwmfR MXDC_ESCAPE(0x101A, WmfEscapeUnknownData::new), /** Enables applications to include private procedures and other arbitrary data in documents. */ SPCLPASSTHROUGH2(0x11D8, WmfEscapeUnknownData::new); - - public int flag; - public final Supplier<? extends HwmfEscape.HwmfEscapeData> constructor; + + private final int flag; + private final Supplier<? extends HwmfEscape.HwmfEscapeData> constructor; EscapeFunction(int flag, Supplier<? extends HwmfEscape.HwmfEscapeData> constructor) { @@ -173,6 +173,14 @@ public class HwmfEscape implements HwmfR this.constructor = constructor; } + public int getFlag() { + return flag; + } + + public Supplier<? extends HwmfEscapeData> getConstructor() { + return constructor; + } + static EscapeFunction valueOf(int flag) { for (EscapeFunction hs : values()) { if (hs.flag == flag) return hs; @@ -180,14 +188,14 @@ public class HwmfEscape implements HwmfR return null; } } - + public interface HwmfEscapeData { public int init(LittleEndianInputStream leis, long recordSize, EscapeFunction escapeFunction) throws IOException; } /** - * A 16-bit unsigned integer that defines the escape function. The + * A 16-bit unsigned integer that defines the escape function. The * value MUST be from the MetafileEscapes enumeration. */ private EscapeFunction escapeFunction; @@ -197,7 +205,7 @@ public class HwmfEscape implements HwmfR public HwmfRecordType getWmfRecordType() { return HwmfRecordType.escape; } - + @Override public int init(LittleEndianInputStream leis, long recordSize, int recordFunction) throws IOException { escapeFunction = EscapeFunction.valueOf(leis.readUShort()); @@ -221,9 +229,9 @@ public class HwmfEscape implements HwmfR @Override public void draw(HwmfGraphics ctx) { - + } - + public String toString() { return GenericRecordJsonWriter.marshal(this); } @@ -247,7 +255,7 @@ public class HwmfEscape implements HwmfR @Override public int init(LittleEndianInputStream leis, long recordSize, EscapeFunction escapeFunction) throws IOException { this.escapeFunction = escapeFunction; - escapeDataBytes = IOUtils.toByteArray(leis,recordSize,MAX_OBJECT_SIZE); + escapeDataBytes = IOUtils.toByteArray(leis,(int)recordSize,MAX_OBJECT_SIZE); return (int)recordSize; } @@ -290,7 +298,7 @@ public class HwmfEscape implements HwmfR if (commentIdentifier != EMF_COMMENT_IDENTIFIER) { // there are some WMF implementation using this record as a MFCOMMENT or similar // if the commentIdentifier doesn't match, then return immediately - emfData = IOUtils.toByteArray(leis, recordSize-LittleEndianConsts.INT_SIZE, MAX_OBJECT_SIZE); + emfData = IOUtils.toByteArray(leis, (int)(recordSize-LittleEndianConsts.INT_SIZE), MAX_OBJECT_SIZE); remainingBytes = emfData.length; return (int)recordSize; } Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfHatchStyle.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfHatchStyle.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfHatchStyle.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfHatchStyle.java Sat Dec 26 00:08:19 2020 @@ -47,14 +47,22 @@ public enum HwmfHatchStyle { HS_DITHEREDBKCLR(0x000B, 0xAA55AA55AA55AA55L) ; - int flag; - public long pattern; + private final int flag; + private final long pattern; HwmfHatchStyle(int flag, long pattern) { this.flag = flag; this.pattern = pattern; } + public int getFlag() { + return flag; + } + + public long getPattern() { + return pattern; + } + public static HwmfHatchStyle valueOf(int flag) { for (HwmfHatchStyle hs : values()) { if (hs.flag == flag) return hs; Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfPenStyle.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfPenStyle.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfPenStyle.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfPenStyle.java Sat Dec 26 00:08:19 2020 @@ -129,6 +129,7 @@ public class HwmfPenStyle implements Dup public final int wmfFlag; public final float[] dashes; + HwmfLineDash(int wmfFlag, float... dashes) { this.wmfFlag = wmfFlag; this.dashes = dashes; Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfTernaryRasterOp.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfTernaryRasterOp.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfTernaryRasterOp.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfTernaryRasterOp.java Sat Dec 26 00:08:19 2020 @@ -370,7 +370,7 @@ public enum HwmfTernaryRasterOp { private static final String OPS = "nxoa"; - public int opValue; + private final int opValue; HwmfTernaryRasterOp(int opValue) { this.opValue=opValue; Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/FontReplacer.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/FontReplacer.java?rev=1884807&r1=1884806&r2=1884807&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/FontReplacer.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/FontReplacer.java Sat Dec 26 00:08:19 2020 @@ -19,14 +19,12 @@ package org.apache.poi.hwpf.converter; import org.apache.poi.util.Beta; @Beta -public interface FontReplacer -{ - public class Triplet - { +public interface FontReplacer { + class Triplet { public String fontName; public boolean bold; public boolean italic; } - public Triplet update( Triplet original ); + Triplet update(Triplet original); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org