svn commit: r1873430 - /poi/trunk/src/scratchpad/testcases/org/apache/poi/hemf/usermodel/TestHemfPicture.java

2020-01-31 Thread kiwiwings
Author: kiwiwings
Date: Fri Jan 31 18:45:39 2020
New Revision: 1873430

URL: http://svn.apache.org/viewvc?rev=1873430=rev
Log:
Local EMF test changes

Modified:

poi/trunk/src/scratchpad/testcases/org/apache/poi/hemf/usermodel/TestHemfPicture.java

Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hemf/usermodel/TestHemfPicture.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hemf/usermodel/TestHemfPicture.java?rev=1873430=1873429=1873430=diff
==
--- 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hemf/usermodel/TestHemfPicture.java
 (original)
+++ 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hemf/usermodel/TestHemfPicture.java
 Fri Jan 31 18:45:39 2020
@@ -56,46 +56,42 @@ public class TestHemfPicture {
 private static final POIDataSamples ss_samples = 
POIDataSamples.getSpreadSheetInstance();
 private static final POIDataSamples sl_samples = 
POIDataSamples.getSlideShowInstance();
 
-/*
+/*
+@Test
+@Ignore("Only for manual tests")
+public void paintSingle() throws Exception {
+File fileIn = new File("tmp/emfs/govdocs1/844/844795.ppt_2.emf");
+
+String[] args = {
+"-format", "png", // png,gif,jpg or null for test
+"-outdir", new File("build/tmp/").getCanonicalPath(),
+"-outfile", fileIn.getName().replaceAll("\\.[^.]+?$", ".png"),
+"-fixside", "long",
+"-scale", "800",
+"-ignoreParse",
+// "-dump", new File("build/tmp/", 
fileIn.getName().replaceAll("\\.[^.]+?$",".json")).getCanonicalPath(),
+// "-quiet",
+// "-extractEmbedded",
+fileIn.getPath()
+};
+PPTX2PNG.main(args);
+}
+*/
+/*
 @Test
 @Ignore("Only for manual tests - need to add org.tukaani:xz:1.8 for this 
to work")
-public void paint() throws Exception {
+public void paintMultiple() throws Exception {
 final byte buf[] = new byte[50_000_000];
-
-// good test samples to validate rendering:
-// emfs/commoncrawl2/NB/NBWN2YH5VFCLZRFDQU7PB7IDD4UKY7DN_2.emf
-// emfs/govdocs1/777/777525.ppt_0.emf
-// emfs/govdocs1/844/844795.ppt_2.emf
-// emfs/commoncrawl2/TO/TOYZSTNUSW5OFCFUQ6T5FBLIDLCRF3NH_0.emf
-
-// ISS3ANIX2PL4PXR7SZSJSPBZI7YQQE3U_6 - map of italy - stroke problem
-// 3QKAPISTXYHSFCTV6QTKTYLK6JTWJHQU_2 - text misplaced
-// KEEDHN6XES4EKK52E3AJHKCARNTQF7PO_0 - dito
-// KWG4VAU5GM3POSA4BPG6RSVQVS44SXOL_1.emf - processing freezes
-
-// F7GK5XOLERFURVTQALOCX3GJ6FH45LNQ strange colors
-// ISS3ANIX2PL4PXR7SZSJSPBZI7YQQE3U stroke wrong
-// KWG4VAU5GM3POSA4BPG6RSVQVS44SXOL_1
-
 try (SevenZFile sevenZFile = new SevenZFile(new 
File("tmp/plus_emf.7z"))
 ) {
-for (int idx=0;;idx++) {
-SevenZArchiveEntry entry = sevenZFile.getNextEntry();
-if (entry == null) break;
+SevenZArchiveEntry entry;
+while ((entry = sevenZFile.getNextEntry()) != null) {
 final String etName = entry.getName();
 
 if (entry.isDirectory() || !etName.endsWith(".emf")) continue;
 
-if (!(etName.contains("3QKAPISTXYHSFCTV6QTKTYLK6JTWJHQU_2")
-)) continue;
-
-//|| etName.contains("ISS3ANIX2PL4PXR7SZSJSPBZI7YQQE3U_6")
-//|| 
etName.contains("KWG4VAU5GM3POSA4BPG6RSVQVS44SXOL_1")
-
-
-System.out.println(etName);
-
 int size = sevenZFile.read(buf);
+
 ByteArrayInputStream bis = new ByteArrayInputStream(buf, 0, 
size);
 System.setIn(bis);
 
@@ -108,7 +104,7 @@ public class TestHemfPicture {
 "-fixside", "long",
 "-scale", "800",
 "-ignoreParse",
- "-dump", new File("build/tmp/", 
lastName.replace(".emf",".json")).getCanonicalPath(),
+// "-dump", new File("build/tmp/", 
lastName.replace(".emf",".json")).getCanonicalPath(),
 // "-quiet",
 // "-extractEmbedded",
 "stdin"
@@ -117,7 +113,8 @@ public class TestHemfPicture {
 }
 }
 }
-*/
+ */
+
 @Test
 public void testBasicWindows() throws Exception {
 try (InputStream is = 
ss_samples.openResourceAsStream("SimpleEMF_windows.emf")) {



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1873190 [2/2] - in /poi/trunk/src/ooxml: java/org/apache/poi/ooxml/ java/org/apache/poi/poifs/crypt/dsig/ java/org/apache/poi/xdgf/usermodel/ java/org/apache/poi/xdgf/xml/ java/org/apache

2020-01-26 Thread kiwiwings
Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java?rev=1873190=1873189=1873190=diff
==
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java 
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java 
Mon Jan 27 00:31:01 2020
@@ -21,7 +21,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.poi.ooxml.POIXMLDocument;
-import org.apache.poi.ooxml.POIXMLDocumentPart;
 import org.apache.poi.ooxml.POIXMLRelation;
 import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -39,197 +38,213 @@ public final class XWPFRelation extends
 public static final XWPFRelation DOCUMENT = new XWPFRelation(
 
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml",
 PackageRelationshipTypes.CORE_DOCUMENT,
-"/word/document.xml",
-null
+"/word/document.xml"
 );
+
 public static final XWPFRelation TEMPLATE = new XWPFRelation(
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml",
-PackageRelationshipTypes.CORE_DOCUMENT,
-"/word/document.xml",
-null
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml",
+PackageRelationshipTypes.CORE_DOCUMENT,
+"/word/document.xml"
 );
+
 public static final XWPFRelation MACRO_DOCUMENT = new XWPFRelation(
-"application/vnd.ms-word.document.macroEnabled.main+xml",
-PackageRelationshipTypes.CORE_DOCUMENT,
-"/word/document.xml",
-null
+"application/vnd.ms-word.document.macroEnabled.main+xml",
+PackageRelationshipTypes.CORE_DOCUMENT,
+"/word/document.xml"
 );
+
 public static final XWPFRelation MACRO_TEMPLATE_DOCUMENT = new 
XWPFRelation(
-"application/vnd.ms-word.template.macroEnabledTemplate.main+xml",
-PackageRelationshipTypes.CORE_DOCUMENT,
-"/word/document.xml",
-null
+"application/vnd.ms-word.template.macroEnabledTemplate.main+xml",
+PackageRelationshipTypes.CORE_DOCUMENT,
+"/word/document.xml"
 );
+
 public static final XWPFRelation GLOSSARY_DOCUMENT = new XWPFRelation(
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml",
-
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/glossaryDocument;,
-"/word/glossary/document.xml",
-null
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml",
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/glossaryDocument;,
+"/word/glossary/document.xml"
 );
+
 public static final XWPFRelation NUMBERING = new XWPFRelation(
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml",
-
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering;,
-"/word/numbering.xml",
-XWPFNumbering.class
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml",
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering;,
+"/word/numbering.xml",
+XWPFNumbering::new, XWPFNumbering::new
 );
+
 public static final XWPFRelation FONT_TABLE = new XWPFRelation(
 
"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml",
 
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable;,
-"/word/fontTable.xml",
-null
+"/word/fontTable.xml"
 );
+
 public static final XWPFRelation SETTINGS = new XWPFRelation(
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml",
-
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings;,
-"/word/settings.xml",
-XWPFSettings.class
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml",
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings;,
+"/word/settings.xml",
+XWPFSettings::new, XWPFSettings::new
 );
+
 public static final XWPFRelation STYLES = new XWPFRelation(
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml",
-
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles;,
-"/word/styles.xml",
-XWPFStyles.class
+

svn commit: r1873190 [1/2] - in /poi/trunk/src/ooxml: java/org/apache/poi/ooxml/ java/org/apache/poi/poifs/crypt/dsig/ java/org/apache/poi/xdgf/usermodel/ java/org/apache/poi/xdgf/xml/ java/org/apache

2020-01-26 Thread kiwiwings
Author: kiwiwings
Date: Mon Jan 27 00:31:01 2020
New Revision: 1873190

URL: http://svn.apache.org/viewvc?rev=1873190=rev
Log:
#64036 - Replace reflection calls in factories for Java 9+ - POIXMLDocument 
factories

Modified:
poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLFactory.java
poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLRelation.java
poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/DSigRelation.java
poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/XDGFBaseContents.java
poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/XDGFFactory.java

poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/XDGFMasterContents.java
poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/XDGFMasters.java
poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/XDGFPageContents.java
poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/XDGFPages.java
poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/XDGFRelation.java
poi/trunk/src/ooxml/java/org/apache/poi/xdgf/xml/XDGFXMLDocumentPart.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFFactory.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFRelation.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableStyles.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRelation.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFactory.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFEndnotes.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFactory.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNumbering.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java
poi/trunk/src/ooxml/testcases/org/apache/poi/ooxml/TestPOIXMLDocument.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLFactory.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLFactory.java?rev=1873190=1873189=1873190=diff
==
--- poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLFactory.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLFactory.java Mon Jan 27 
00:31:01 2020
@@ -16,13 +16,16 @@
  */
 package org.apache.poi.ooxml;
 
-import java.lang.reflect.InvocationTargetException;
+import java.io.IOException;
 
+import org.apache.poi.ooxml.POIXMLRelation.PackagePartConstructor;
+import org.apache.poi.ooxml.POIXMLRelation.ParentPartConstructor;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
+import org.apache.xmlbeans.XmlException;
 
 /**
  * Defines a factory API that enables sub-classes to create instances of 
POIXMLDocumentPart
@@ -30,9 +33,6 @@ import org.apache.poi.util.POILogger;
 public abstract class POIXMLFactory {
 private static final POILogger LOGGER = 
POILogFactory.getLogger(POIXMLFactory.class);
 
-private static final Class[] PARENT_PART = {POIXMLDocumentPart.class, 
PackagePart.class};
-private static final Class[] ORPHAN_PART = {PackagePart.class};
-
 /**
  * Create a POIXMLDocumentPart from existing package part and relation. 
This method is called
  * from {@link POIXMLDocument#load(POIXMLFactory)} when parsing a document
@@ -40,7 +40,7 @@ public abstract class POIXMLFactory {
  * @param parent parent part
  * @param part  the PackagePart representing the created instance
  * @return A new instance of a POIXMLDocumentPart.
- * 
+ *
  * @since by POI 3.14-Beta1
  */
 public POIXMLDocumentPart createDocumentPart(POIXMLDocumentPart parent, 
PackagePart part) {
@@ -50,48 +50,31 @@ public abstract class POIXMLFactory {
 
 // don't parse the document parts, if its class can't be determined
 // or if it's a package relation of another embedded resource
-if (descriptor == null || descriptor.getRelationClass() == null || 
POIXMLDocument.PACK_OBJECT_REL_TYPE.equals(relType)) {
-LOGGER.log(POILogger.DEBUG, "using default POIXMLDocumentPart for 
" + rel.getRelationshipType());
-return new POIXMLDocumentPart(parent, part);
-}
-
-Class cls = 
descriptor.getRelationClass();
 try {
-try {
-return createDocumentPart(cls, PARENT_PART, new 
Object[]{pa

svn commit: r1873187 - in /poi/trunk/src: java/org/apache/poi/ddf/ java/org/apache/poi/hssf/record/ java/org/apache/poi/hssf/usermodel/ scratchpad/src/org/apache/poi/hslf/record/ testcases/org/apache/

2020-01-26 Thread kiwiwings
Author: kiwiwings
Date: Sun Jan 26 19:50:40 2020
New Revision: 1873187

URL: http://svn.apache.org/viewvc?rev=1873187=rev
Log:
#64036 - Replace reflection calls in factories for Java 9+ - Escher factories

Removed:
poi/trunk/src/java/org/apache/poi/ddf/EscherPictBlip.java
Modified:
poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
poi/trunk/src/java/org/apache/poi/ddf/EscherClientDataRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherRecordTypes.java
poi/trunk/src/java/org/apache/poi/hssf/record/ContinueRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DrawingRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/EscherAggregate.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFShapeFactory.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/HSLFEscherRecordFactory.java
poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java

Modified: poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java?rev=1873187=1873186=1873187=diff
==
--- poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java Sun 
Jan 26 19:50:40 2020
@@ -17,11 +17,12 @@
 
 package org.apache.poi.ddf;
 
-import java.lang.reflect.Constructor;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.function.Supplier;
 
+import org.apache.poi.util.BitField;
+import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.Removal;
 
 /**
  * Generates escher records when provided the byte array containing those 
records.
@@ -29,14 +30,7 @@ import org.apache.poi.util.LittleEndian;
  * @see EscherRecordFactory
  */
 public class DefaultEscherRecordFactory implements EscherRecordFactory {
-private static Class[] escherRecordClasses = { EscherBSERecord.class,
-EscherOptRecord.class, EscherTertiaryOptRecord.class,
-EscherClientAnchorRecord.class, EscherDgRecord.class,
-EscherSpgrRecord.class, EscherSpRecord.class,
-EscherClientDataRecord.class, EscherDggRecord.class,
-EscherSplitMenuColorsRecord.class, EscherChildAnchorRecord.class,
-EscherTextboxRecord.class };
-private static Map> recordsMap 
= recordsToMap( escherRecordClasses );
+private static final BitField IS_CONTAINER = 
BitFieldFactory.getInstance(0xF);
 
 /**
  * Creates an instance of the escher record factory
@@ -51,86 +45,41 @@ public class DefaultEscherRecordFactory
 short recordId = LittleEndian.getShort( data, offset + 2 );
 // int remainingBytes = LittleEndian.getInt( data, offset + 4 );
 
+final EscherRecord escherRecord = getConstructor(options, 
recordId).get();
+escherRecord.setRecordId(recordId);
+escherRecord.setOptions(options);
+return escherRecord;
+}
+
+protected Supplier getConstructor(short options, 
short recordId) {
+EscherRecordTypes recordTypes = EscherRecordTypes.forTypeID(recordId);
+
 // Options of 0x000F means container record
-// However, EscherTextboxRecord are containers of records for the
-//  host application, not of other Escher records, so treat them
-//  differently
-if (isContainer(options, recordId)) {
-EscherContainerRecord r = new EscherContainerRecord();
-r.setRecordId( recordId );
-r.setOptions( options );
-return r;
+// However, EscherTextboxRecord are containers of records for the host 
application,
+// not of other Escher records, but those are returned by the above 
anyway
+if (recordTypes == EscherRecordTypes.UNKNOWN && 
IS_CONTAINER.isAllSet(options)) {
+return EscherContainerRecord::new;
 }
 
-if (recordId >= EscherBlipRecord.RECORD_ID_START
-&& recordId <= EscherBlipRecord.RECORD_ID_END) {
-EscherBlipRecord r;
-if (recordId == EscherBitmapBlip.RECORD_ID_DIB ||
-recordId == EscherBitmapBlip.RECORD_ID_JPEG ||
-recordId == EscherBitmapBlip.RECORD_ID_PNG)
-{
-r = new EscherBitmapBlip();
-}
-else if (recordId == EscherMetafileBlip.RECORD_ID_EMF ||
-recordId == EscherMetafileBlip.RECORD_ID_WMF ||
-recordId == EscherMetafileBlip.RECORD_ID_PICT)
-{
-r = new EscherMetafileBlip();
-} else {
-r = new EscherBlipRecord();
-}
-r.setRecordId( recordId );
-r.setOptions( options );
-return r;
+if (record

svn commit: r1873078 - in /poi/trunk/src: scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java testcases/org/apache/poi/hssf/usermodel/TestFormulas.java

2020-01-23 Thread kiwiwings
Author: kiwiwings
Date: Thu Jan 23 22:48:19 2020
New Revision: 1873078

URL: http://svn.apache.org/viewvc?rev=1873078=rev
Log:
sonar fixes

Modified:

poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java

Modified: 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java?rev=1873078=1873077=1873078=diff
==
--- 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
 (original)
+++ 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
 Thu Jan 23 22:48:19 2020
@@ -323,7 +323,7 @@ public class HemfPlusPen {
 private final AffineTransform trans = new AffineTransform();
 private EmfPlusLineCapType startCap = EmfPlusLineCapType.FLAT;
 private EmfPlusLineCapType endCap = startCap;
-private EmfPlusLineJoin join = EmfPlusLineJoin.ROUND;
+private EmfPlusLineJoin lineJoin = EmfPlusLineJoin.ROUND;
 private Double miterLimit = 1.;
 private EmfPlusLineStyle style = EmfPlusLineStyle.SOLID;
 private EmfPlusDashedLineCapType dashedLineCapType;
@@ -381,7 +381,7 @@ public class HemfPlusPen {
 // An optional 32-bit signed integer that specifies how to 
join two lines that are drawn by the same pen
 // and whose ends meet. This field MUST be present if the 
PenDataJoin flag is set in the PenDataFlags
 // field of the EmfPlusPenData object, and the value MUST be 
defined in the LineJoinType enumeration
-join = EmfPlusLineJoin.valueOf(leis.readInt());
+lineJoin = EmfPlusLineJoin.valueOf(leis.readInt());
 size += LittleEndianConsts.INT_SIZE;
 }
 
@@ -479,6 +479,7 @@ public class HemfPlusPen {
 return graphicsVersion;
 }
 
+@SuppressWarnings("unused")
 private long initCustomCap(Consumer setter, 
LittleEndianInputStream leis) throws IOException {
 int CustomStartCapSize = leis.readInt();
 int size = LittleEndianConsts.INT_SIZE;
@@ -526,7 +527,7 @@ public class HemfPlusPen {
 }
 
 HwmfLineJoin lineJoin;
-switch (join) {
+switch (this.lineJoin) {
 default:
 case BEVEL:
 lineJoin = HwmfLineJoin.BEVEL;
@@ -565,7 +566,7 @@ public class HemfPlusPen {
 m.put("trans", () -> trans);
 m.put("startCap", () -> startCap);
 m.put("endCap", () -> endCap);
-m.put("join", () -> join);
+m.put("join", () -> lineJoin);
 m.put("miterLimit", () -> miterLimit);
 m.put("style", () -> style);
 m.put("dashedLineCapType", () -> dashedLineCapType);

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java?rev=1873078=1873077=1873078=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java Thu 
Jan 23 22:48:19 2020
@@ -17,6 +17,7 @@
 
 package org.apache.poi.hssf.usermodel;
 
+import static org.apache.poi.hssf.HSSFTestDataSamples.writeOutAndReadBack;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
@@ -25,17 +26,19 @@ import static org.junit.Assert.assertTru
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.util.Date;
+import java.util.Calendar;
 
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.model.HSSFFormulaParser;
-import org.apache.poi.ss.util.CellReference;
 import org.apache.poi.ss.formula.FormulaType;
 import org.apache.poi.ss.formula.ptg.NamePtg;
 import org.apache.poi.ss.formula.ptg.Ptg;
 import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.DateUtil;
 import org.apache.poi.ss.usermodel.Name;
 import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.util.LocaleUtil;
 import org.apache.poi.util.TempFile;
 import org.junit.Test;
 
@@ -50,25 +53,22 @@ public final class TestFormulas {
  */
 @Test
 public void testBasicAddIntegers() throws IOException {
+try (HSSFWorkbook wb1 = new HSSFWorkbook()) {
+HSSFSheet s = wb1.createSheet();
 
-HSSFWorkbook 

svn commit: r1873047 - /poi/trunk/src/testcases/org/apache/poi/POITestCase.java

2020-01-22 Thread kiwiwings
Author: kiwiwings
Date: Wed Jan 22 21:43:14 2020
New Revision: 1873047

URL: http://svn.apache.org/viewvc?rev=1873047=rev
Log:
Deactivate Forbidden apis check again

Modified:
poi/trunk/src/testcases/org/apache/poi/POITestCase.java

Modified: poi/trunk/src/testcases/org/apache/poi/POITestCase.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/POITestCase.java?rev=1873047=1873046=1873047=diff
==
--- poi/trunk/src/testcases/org/apache/poi/POITestCase.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/POITestCase.java Wed Jan 22 21:43:14 
2020
@@ -37,6 +37,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.poi.util.Internal;
+import org.apache.poi.util.SuppressForbidden;
 import org.mockito.internal.matchers.apachecommons.ReflectionEquals;
 
 /**
@@ -120,6 +121,7 @@ public final class POITestCase {
  * Only use this method in test cases!!!
  */
 @SuppressWarnings({"unused", "unchecked"})
+@SuppressForbidden("For test usage only")
 public static  R getFieldValue(final Class clazz, final T 
instance, final Class fieldType, final String fieldName) {
 assertTrue("Reflection of private fields is only allowed for POI 
classes.", clazz.getName().startsWith("org.apache.poi."));
 try {



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1873015 - in /poi/trunk/src: integrationtest/org/apache/poi/stress/ ooxml/testcases/org/apache/poi/poifs/crypt/ testcases/org/apache/poi/ testcases/org/apache/poi/hssf/dev/ testcases/org/

2020-01-21 Thread kiwiwings
Author: kiwiwings
Date: Tue Jan 21 22:02:10 2020
New Revision: 1873015

URL: http://svn.apache.org/viewvc?rev=1873015=rev
Log:
Sonar fixes

Modified:
poi/trunk/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java
poi/trunk/src/integrationtest/org/apache/poi/stress/HSSFFileHandler.java
poi/trunk/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java
poi/trunk/src/integrationtest/org/apache/poi/stress/XDGFFileHandler.java
poi/trunk/src/integrationtest/org/apache/poi/stress/XWPFFileHandler.java

poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java
poi/trunk/src/testcases/org/apache/poi/POITestCase.java
poi/trunk/src/testcases/org/apache/poi/TestPOITestCase.java
poi/trunk/src/testcases/org/apache/poi/hssf/dev/TestBiffViewer.java

poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFeatRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLabelRecord.java

Modified: 
poi/trunk/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java?rev=1873015=1873014=1873015=diff
==
--- poi/trunk/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java 
(original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java 
Tue Jan 21 22:02:10 2020
@@ -45,9 +45,9 @@ import org.junit.Test;
 
 public class HPSFFileHandler extends POIFSFileHandler {
 private static final String NL = System.getProperty("line.separator");
-
+
 private static File copyOutput;
-
+
 static final Set EXCLUDES_HANDLE_ADD = unmodifiableHashSet(
 "spreadsheet/45290.xls",
 "spreadsheet/46904.xls",
@@ -57,17 +57,17 @@ public class HPSFFileHandler extends POI
 "hpsf/Test_Humor-Generation.ppt",
 "document/word2.doc"
 );
-
+
 static final Set EXCLUDES_HANDLE_FILE = unmodifiableHashSet(
 "hpsf/Test_Humor-Generation.ppt"
 );
-
-
+
+
 private static Set unmodifiableHashSet(String... a) {
 return Collections.unmodifiableSet(new HashSet<>(Arrays.asList(a)));
 }
 
-
+
 @Override
 public void handleFile(InputStream stream, String path) throws Exception {
 Assume.assumeFalse(EXCLUDES_HANDLE_FILE.contains(path));
@@ -77,10 +77,10 @@ public class HPSFFileHandler extends POI
SummaryInformation si = hpsf.getSummaryInformation();
boolean hasDSI = hasPropertyStream(poifs, 
DocumentSummaryInformation.DEFAULT_STREAM_NAME);
boolean hasSI = hasPropertyStream(poifs, 
SummaryInformation.DEFAULT_STREAM_NAME);
-   
+
assertEquals(hasDSI, dsi != null);
 assertEquals(hasSI, si != null);
-   
+
handlePOIDocument(hpsf);
}
 
@@ -93,7 +93,7 @@ public class HPSFFileHandler extends POI
 return PropertySet.isPropertySetStream(dis);
 }
}
-   
+
 @Override
 public void handleAdditional(File file) throws Exception {
 
Assume.assumeFalse(EXCLUDES_HANDLE_ADD.contains(file.getParentFile().getName()+"/"+file.getName()));
@@ -114,10 +114,11 @@ public class HPSFFileHandler extends POI
 }
 }
 
-   
+
// a test-case to test this locally without executing the full 
TestAllFiles
@Override
 @Test
+@SuppressWarnings("java:S2699")
public void test() throws Exception {
String path = "test-data/hpsf/Test0313rur.adm";
 try (InputStream stream = new FileInputStream(path)) {

Modified: 
poi/trunk/src/integrationtest/org/apache/poi/stress/HSSFFileHandler.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/HSSFFileHandler.java?rev=1873015=1873014=1873015=diff
==
--- poi/trunk/src/integrationtest/org/apache/poi/stress/HSSFFileHandler.java 
(original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/HSSFFileHandler.java 
Tue Jan 21 22:02:10 2020
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertNot
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
@@ -50,7 +49,7 @@ public class HSSFFileHandler extends Spr
 // So FormulaEvalTestData.xls now contains a few formulas that produce 
errors here.
 //HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
 //evaluator.evaluateAll();
-
+
delegate.handlePOIDocument(wb);
 
// also try to see if som

svn commit: r1873001 - in /poi/trunk: jenkins/create_jobs.groovy src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java

2020-01-20 Thread kiwiwings
Author: kiwiwings
Date: Tue Jan 21 00:06:32 2020
New Revision: 1873001

URL: http://svn.apache.org/viewvc?rev=1873001=rev
Log:
try to fix winmail errors in maven / sonar builds

Modified:
poi/trunk/jenkins/create_jobs.groovy
poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java

Modified: poi/trunk/jenkins/create_jobs.groovy
URL: 
http://svn.apache.org/viewvc/poi/trunk/jenkins/create_jobs.groovy?rev=1873001=1873000=1873001=diff
==
--- poi/trunk/jenkins/create_jobs.groovy (original)
+++ poi/trunk/jenkins/create_jobs.groovy Tue Jan 21 00:06:32 2020
@@ -231,6 +231,7 @@ poijobs.each { poijob ->
 }
 preBuildCleanup {
 includePattern('**/ooxml-lib/ooxml*.jar')
+includePattern('sonar/*/target/**')
 }
 if(poijob.sonar) {
 credentialsBinding {

Modified: 
poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java?rev=1873001=1873000=1873001=diff
==
--- poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java 
(original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java 
Tue Jan 21 00:06:32 2020
@@ -25,7 +25,6 @@ import java.util.Arrays;
 
 import org.apache.poi.hmef.HMEFMessage;
 import org.apache.poi.hmef.attribute.MAPIAttribute;
-import org.apache.poi.hmef.attribute.MAPIStringAttribute;
 import org.apache.poi.hmef.attribute.TNEFAttribute;
 import org.apache.poi.hmef.attribute.TNEFProperty;
 import org.apache.poi.hsmf.datatypes.MAPIProperty;
@@ -47,13 +46,7 @@ public class HMEFFileHandler extends Abs
 public void handleFile(InputStream stream, String path) throws Exception {
HMEFMessage msg = new HMEFMessage(stream);
 
-   // list all properties
-   StringBuilder props = new StringBuilder();
-   for(MAPIAttribute att : msg.getMessageMAPIAttributes()) {
-   props.append(att.getType()).append(": 
").append(MAPIStringAttribute.getAsString( att)).append("\n");
-   }
-
-   // there are two test-files that have no body...
+   // there are test-files that have no body...
String[] HTML_BODY = {
"Testing TNEF Message", "TNEF test message with 
attachments", "Test"
};



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1872984 [2/2] - in /poi: site/src/documentation/content/xdocs/ trunk/src/java/org/apache/poi/sl/draw/ trunk/src/java/org/apache/poi/sl/usermodel/ trunk/src/ooxml/java/org/apache/poi/xslf/

2020-01-19 Thread kiwiwings
Modified: 
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java?rev=1872984=1872983=1872984=diff
==
--- 
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java
 (original)
+++ 
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java
 Sun Jan 19 20:44:36 2020
@@ -41,7 +41,25 @@ import org.apache.poi.hslf.model.textpro
 import org.apache.poi.hslf.model.textproperties.TextProp;
 import org.apache.poi.hslf.model.textproperties.TextPropCollection;
 import 
org.apache.poi.hslf.model.textproperties.TextPropCollection.TextPropType;
-import org.apache.poi.hslf.record.*;
+import org.apache.poi.hslf.record.ColorSchemeAtom;
+import org.apache.poi.hslf.record.EscherTextboxWrapper;
+import org.apache.poi.hslf.record.InteractiveInfo;
+import org.apache.poi.hslf.record.MasterTextPropAtom;
+import org.apache.poi.hslf.record.OutlineTextRefAtom;
+import org.apache.poi.hslf.record.PPDrawing;
+import org.apache.poi.hslf.record.RecordContainer;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.RoundTripHFPlaceholder12;
+import org.apache.poi.hslf.record.SlideListWithText;
+import org.apache.poi.hslf.record.SlidePersistAtom;
+import org.apache.poi.hslf.record.StyleTextProp9Atom;
+import org.apache.poi.hslf.record.StyleTextPropAtom;
+import org.apache.poi.hslf.record.TextBytesAtom;
+import org.apache.poi.hslf.record.TextCharsAtom;
+import org.apache.poi.hslf.record.TextHeaderAtom;
+import org.apache.poi.hslf.record.TextRulerAtom;
+import org.apache.poi.hslf.record.TextSpecInfoAtom;
+import org.apache.poi.hslf.record.TxInteractiveInfoAtom;
 import org.apache.poi.sl.draw.DrawPaint;
 import org.apache.poi.sl.usermodel.AutoNumberingScheme;
 import org.apache.poi.sl.usermodel.PaintStyle;
@@ -141,7 +159,7 @@ public final class HSLFTextParagraph imp
 _byteAtom = tba;
 _charAtom = tca;
 this.parentList = parentList;
-_paragraphStyle = new TextPropCollection(1, TextPropType.paragraph);
+setParagraphStyle(new TextPropCollection(1, TextPropType.paragraph));
 }
 
 /* package */HSLFTextParagraph(HSLFTextParagraph other) {
@@ -152,8 +170,8 @@ public final class HSLFTextParagraph imp
 _sheet = other._sheet;
 _ruler = other._ruler;
 shapeId = other.shapeId;
-_paragraphStyle = other._paragraphStyle;
 parentList = other.parentList;
+setParagraphStyle(other._paragraphStyle);
 }
 
 public void addTextRun(HSLFTextRun run) {



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1872984 [1/2] - in /poi: site/src/documentation/content/xdocs/ trunk/src/java/org/apache/poi/sl/draw/ trunk/src/java/org/apache/poi/sl/usermodel/ trunk/src/ooxml/java/org/apache/poi/xslf/

2020-01-19 Thread kiwiwings
Author: kiwiwings
Date: Sun Jan 19 20:44:36 2020
New Revision: 1872984

URL: http://svn.apache.org/viewvc?rev=1872984=rev
Log:
#64088 - SlideShow rendering fixes

Modified:
poi/site/src/documentation/content/xdocs/changes.xml
poi/trunk/src/java/org/apache/poi/sl/draw/BitmapImageRenderer.java
poi/trunk/src/java/org/apache/poi/sl/draw/DrawPaint.java
poi/trunk/src/java/org/apache/poi/sl/usermodel/PaintStyle.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFBackground.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java

poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGradientPaint.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotes.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotesMaster.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShadow.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideMaster.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableCell.java

poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTexturePaint.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTheme.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFColor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java

Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1872984=1872983=1872984=diff
==
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Sun Jan 19 20:44:36 
2020
@@ -111,6 +111,7 @@
 Replace Cloneable / clone() with copy constructor
 Replace reflection calls in factories for Java 9+
 Fix issue with setCellValue(LocalDate) not supporting 
nulls properly
+SlideShow rendering fixes
   
 
 

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/BitmapImageRenderer.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/BitmapImageRenderer.java?rev=1872984=1872983=1872984=diff
==
--- poi/trunk/src/java/org/apache/poi/sl/draw/BitmapImageRenderer.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/BitmapImageRenderer.java Sun Jan 
19 20:44:36 2020
@@ -75,7 +75,7 @@ public class BitmapImageRenderer impleme
 public void loadImage(byte[] data, String contentType) throws IOException {
 img = readImage(new ByteArrayInputStream(data), contentType);
 }
-
+
 /**
  * Read the image data via ImageIO and optionally try to workaround 
metadata errors.
  * The resulting image is of image type {@link BufferedImage#TYPE_INT_ARGB}
@@ -117,7 +117,7 @@ public class BitmapImageRenderer impleme
 }
 
 try {
-
+
 switch (mode) {
 case 0:
 reader.setInput(iis, false, true);
@@ -146,7 +146,7 @@ public class BitmapImageRenderer impleme
 reader.setInput(iis, false, true);
 int height = reader.getHeight(0);
 int width = reader.getWidth(0);
-
+
 Iterator imageTypes = 
reader.getImageTypes(0);
 if (imageTypes.hasNext()) {
 ImageTypeSpecifier imageTypeSpecifier = 
imageTypes.next();
@@ -172,11 +172,11 @@ public class BitmapImageRenderer impleme
 img = argbImg;
 }
 }
-}
+}
 break;
 }
 }
-
+
 } catch (IOException e) {
 if (mode < 2) {
 lastException = e;
@@ -192,7 +192,7 @@ public class BitmapImageRenderer impleme
 } finally {
 iis.cl

svn commit: r1872523 - in /poi/trunk/src: integrationtest/org/apache/poi/stress/HMEFFileHandler.java ooxml/java/org/apache/poi/ooxml/extractor/ExtractorFactory.java

2020-01-08 Thread kiwiwings
Author: kiwiwings
Date: Wed Jan  8 23:49:31 2020
New Revision: 1872523

URL: http://svn.apache.org/viewvc?rev=1872523=rev
Log:
#63955 - HMEFContentsExtractor fails to extract content from winmail.dat
fixed integration test

Modified:
poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java

poi/trunk/src/ooxml/java/org/apache/poi/ooxml/extractor/ExtractorFactory.java

Modified: 
poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java?rev=1872523=1872522=1872523=diff
==
--- poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java 
(original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/HMEFFileHandler.java 
Wed Jan  8 23:49:31 2020
@@ -18,35 +18,57 @@ package org.apache.poi.stress;
 
 import static org.junit.Assert.assertNotNull;
 
+import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.util.Arrays;
 
 import org.apache.poi.hmef.HMEFMessage;
 import org.apache.poi.hmef.attribute.MAPIAttribute;
 import org.apache.poi.hmef.attribute.MAPIStringAttribute;
+import org.apache.poi.hmef.attribute.TNEFAttribute;
+import org.apache.poi.hmef.attribute.TNEFProperty;
+import org.apache.poi.hsmf.datatypes.MAPIProperty;
+import org.apache.poi.poifs.filesystem.FileMagic;
+import org.apache.poi.util.LittleEndian;
 import org.junit.Test;
 
 public class HMEFFileHandler extends AbstractFileHandler {
 
@Override
+   public void handleExtracting(File file) throws Exception {
+   FileMagic fm = FileMagic.valueOf(file);
+   if (fm == FileMagic.OLE2) {
+   super.handleExtracting(file);
+   }
+   }
+
+   @Override
 public void handleFile(InputStream stream, String path) throws Exception {
HMEFMessage msg = new HMEFMessage(stream);
-   
+
// list all properties
StringBuilder props = new StringBuilder();
for(MAPIAttribute att : msg.getMessageMAPIAttributes()) {
props.append(att.getType()).append(": 
").append(MAPIStringAttribute.getAsString( att)).append("\n");
}
-   
+
// there are two test-files that have no body...
-   if(!msg.getSubject().equals("Testing TNEF Message") && 
!msg.getSubject().equals("TNEF test message with attachments")) {
-   assertNotNull("Had: " + msg.getBody() + ", " + msg.getSubject() 
+ ", " + msg.getAttachments() + ": " + props,
-   msg.getBody());
+   String[] HTML_BODY = {
+   "Testing TNEF Message", "TNEF test message with 
attachments", "Test"
+   };
+   String bodyStr;
+   if(Arrays.asList(HTML_BODY).contains(msg.getSubject())) {
+   MAPIAttribute bodyHtml = 
msg.getMessageMAPIAttribute(MAPIProperty.BODY_HTML);
+   assertNotNull(bodyHtml);
+   bodyStr = new String(bodyHtml.getData(), 
getEncoding(msg));
+   } else {
+   bodyStr = msg.getBody();
}
-   assertNotNull("Had: " + msg.getBody() + ", " + msg.getSubject() 
+ ", " + msg.getAttachments() + ": " + props,
-   msg.getSubject());
+   assertNotNull("Body is not set", bodyStr);
+   assertNotNull("Subject is not set", msg.getSubject());
}
-   
+
// a test-case to test this locally without executing the full 
TestAllFiles
@Test
public void test() throws Exception {
@@ -55,4 +77,22 @@ public class HMEFFileHandler extends Abs
handleFile(stream, path);
}
}
+
+   private String getEncoding(HMEFMessage tnefDat) {
+   TNEFAttribute oemCP = 
tnefDat.getMessageAttribute(TNEFProperty.ID_OEMCODEPAGE);
+   MAPIAttribute cpId = 
tnefDat.getMessageMAPIAttribute(MAPIProperty.INTERNET_CPID);
+   int codePage = 1252;
+   if (oemCP != null) {
+   codePage = LittleEndian.getInt(oemCP.getData());
+   } else if (cpId != null) {
+   codePage =  LittleEndian.getInt(cpId.getData());
+   }
+   switch (codePage) {
+   // see http://en.wikipedia.org/wiki/Code_page for more
+   case 1252: return "Windows-1252";
+   case 20127: return "US-ASCII";
+   default: return "cp"+codePage;
+

svn commit: r1872480 - in /poi/trunk: src/scratchpad/testcases/org/apache/poi/hmef/ src/scratchpad/testcases/org/apache/poi/hmef/attribute/ test-data/hmef/

2020-01-07 Thread kiwiwings
Author: kiwiwings
Date: Wed Jan  8 00:49:39 2020
New Revision: 1872480

URL: http://svn.apache.org/viewvc?rev=1872480=rev
Log:
#63955 - HMEFContentsExtractor fails to extract content from winmail.dat
added example file - optimized junit tests

Added:
poi/trunk/test-data/hmef/bug63955-winmail.dat   (with props)
Modified:
poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java
poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestBugs.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestCompressedRTF.java
poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestHMEFMessage.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/attribute/TestMAPIAttributes.java

Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java?rev=1872480=1872479=1872480=diff
==
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java 
(original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java 
Wed Jan  8 00:49:39 2020
@@ -17,7 +17,9 @@
 
 package org.apache.poi.hmef;
 
+import static org.apache.poi.hmef.TestHMEFMessage.openSample;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 import java.io.IOException;
 import java.text.DateFormat;
@@ -25,29 +27,23 @@ import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.poi.POIDataSamples;
 import org.apache.poi.util.LocaleUtil;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 public final class TestAttachments {
-protected static final POIDataSamples _samples = 
POIDataSamples.getHMEFInstance();
+private static HMEFMessage quick;
 
-
-private HMEFMessage quick;
-
-@Before
-public void setUp() throws Exception {
-quick = new HMEFMessage(
-_samples.openResourceAsStream("quick-winmail.dat")
-);
+@BeforeClass
+public static void setUp() throws IOException {
+quick = openSample("quick-winmail.dat");
 }
 
 /**
  * Check the file is as we expect
  */
 @Test
-public void testCounts() throws Exception {
+public void testCounts() {
 // Should have 5 attachments
 assertEquals(5, quick.getAttachments().size());
 }
@@ -56,7 +52,7 @@ public final class TestAttachments {
  * Check some basic bits about the attachments
  */
 @Test
-public void testBasicAttachments() throws Exception {
+public void testBasicAttachments() {
 List attachments = quick.getAttachments();
 
 // Word first
@@ -90,26 +86,22 @@ public final class TestAttachments {
  * the right values for key things
  */
 @Test
-public void testAttachmentDetails() throws Exception {
+public void testAttachmentDetails() {
 List attachments = quick.getAttachments();
+assertEquals(5, attachments.size());
 
 // Pick a predictable date format + timezone
 DateFormat fmt = new SimpleDateFormat("dd-MMM- hh:mm:ss", 
Locale.UK);
 fmt.setTimeZone(LocaleUtil.TIMEZONE_UTC);
 
-// They should all have the same date on them
-assertEquals("28-Apr-2010 12:40:56", 
fmt.format(attachments.get(0).getModifiedDate()));
-assertEquals("28-Apr-2010 12:40:56", 
fmt.format(attachments.get(1).getModifiedDate()));
-assertEquals("28-Apr-2010 12:40:56", 
fmt.format(attachments.get(2).getModifiedDate()));
-assertEquals("28-Apr-2010 12:40:56", 
fmt.format(attachments.get(3).getModifiedDate()));
-assertEquals("28-Apr-2010 12:40:56", 
fmt.format(attachments.get(4).getModifiedDate()));
-
-// They should all have a 3512 byte metafile rendered version
-assertEquals(3512, attachments.get(0).getRenderedMetaFile().length);
-assertEquals(3512, attachments.get(1).getRenderedMetaFile().length);
-assertEquals(3512, attachments.get(2).getRenderedMetaFile().length);
-assertEquals(3512, attachments.get(3).getRenderedMetaFile().length);
-assertEquals(3512, attachments.get(4).getRenderedMetaFile().length);
+for (Attachment attachment : attachments) {
+// They should all have the same date on them
+assertEquals("28-Apr-2010 12:40:56", 
fmt.format(attachment.getModifiedDate()));
+// They should all have a 3512 byte metafile rendered version
+byte[] meta = attachment.getRenderedMetaFile();
+assertNotNull(meta);
+assertEquals(3512, meta.length);
+}
 }
 
 /**

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestBugs.java
URL: 
http://

svn commit: r1872478 - /poi/trunk/sonar/pom.xml

2020-01-07 Thread kiwiwings
Author: kiwiwings
Date: Wed Jan  8 00:30:58 2020
New Revision: 1872478

URL: http://svn.apache.org/viewvc?rev=1872478=rev
Log:
try sonar module key

Modified:
poi/trunk/sonar/pom.xml

Modified: poi/trunk/sonar/pom.xml
URL: 
http://svn.apache.org/viewvc/poi/trunk/sonar/pom.xml?rev=1872478=1872477=1872478=diff
==
--- poi/trunk/sonar/pom.xml (original)
+++ poi/trunk/sonar/pom.xml Wed Jan  8 00:30:58 2020
@@ -74,6 +74,8 @@
 
 apache
 poi-parent
+${artifactId}
+
 https://sonarcloud.io
 target/jacoco.exec
 
target/site/jacoco/jacoco.xml



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1872477 - in /poi/trunk/sonar: pom.xml sonar-project.properties

2020-01-07 Thread kiwiwings
Author: kiwiwings
Date: Wed Jan  8 00:01:05 2020
New Revision: 1872477

URL: http://svn.apache.org/viewvc?rev=1872477=rev
Log:
try to set sonar settings via maven properties

Removed:
poi/trunk/sonar/sonar-project.properties
Modified:
poi/trunk/sonar/pom.xml

Modified: poi/trunk/sonar/pom.xml
URL: 
http://svn.apache.org/viewvc/poi/trunk/sonar/pom.xml?rev=1872477=1872476=1872477=diff
==
--- poi/trunk/sonar/pom.xml (original)
+++ poi/trunk/sonar/pom.xml Wed Jan  8 00:01:05 2020
@@ -72,6 +72,12 @@
 
 true
 
+apache
+poi-parent
+https://sonarcloud.io
+target/jacoco.exec
+
target/site/jacoco/jacoco.xml
+
 
 3.1.0
 4.13



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1872475 - /poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePartCollection.java

2020-01-07 Thread kiwiwings
Author: kiwiwings
Date: Tue Jan  7 23:05:47 2020
New Revision: 1872475

URL: http://svn.apache.org/viewvc?rev=1872475=rev
Log:
use lambda instead of sub class

Modified:

poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePartCollection.java

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePartCollection.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePartCollection.java?rev=1872475=1872474=1872475=diff
==
--- 
poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePartCollection.java
 (original)
+++ 
poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePartCollection.java
 Tue Jan  7 23:05:47 2020
@@ -123,7 +123,7 @@ public final class PackagePartCollection
  *  e.g. "/ppt/slides/slide#.xml"
  * @return the next available part name index
  * @throws InvalidFormatException if the nameTemplate is null or doesn't 
contain
- *  the index char (#) or results in an invalid part name 
+ *  the index char (#) or results in an invalid part name
  */
 public int getUnusedPartIndex(final String nameTemplate) throws 
InvalidFormatException {
 if (nameTemplate == null || !nameTemplate.contains("#")) {
@@ -131,21 +131,14 @@ public final class PackagePartCollection
 }
 
 final Pattern pattern = Pattern.compile(nameTemplate.replace("#", 
"([0-9]+)"));
-
+
 final ToIntFunction indexFromName = name -> {
 Matcher m = pattern.matcher(name);
 return m.matches() ? Integer.parseInt(m.group(1)) : 0;
 };
-
+
 return packagePartLookup.keySet().stream()
 .mapToInt(indexFromName)
-.collect(MySparseBitSet::new, MySparseBitSet::set, 
MySparseBitSet::myOr).nextClearBit(1);
+.collect(SparseBitSet::new, SparseBitSet::set, (s1,s2) -> 
s1.or(s2)).nextClearBit(1);
 }
-
-private class MySparseBitSet extends SparseBitSet {
-
-   public void myOr(MySparseBitSet other) {
-   this.or(other);
-   }
-   }
 }



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1872473 - in /poi/trunk/src: java/org/apache/poi/hpsf/ java/org/apache/poi/ss/extractor/ scratchpad/src/org/apache/poi/hwmf/record/

2020-01-07 Thread kiwiwings
Author: kiwiwings
Date: Tue Jan  7 22:46:29 2020
New Revision: 1872473

URL: http://svn.apache.org/viewvc?rev=1872473=rev
Log:
findbugs fixes and refactor some ClassIDs

Modified:
poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java
poi/trunk/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java
poi/trunk/src/java/org/apache/poi/hpsf/PropertySet.java
poi/trunk/src/java/org/apache/poi/hpsf/SummaryInformation.java
poi/trunk/src/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfWindowing.java

Modified: poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java?rev=1872473=1872472=1872473=diff
==
--- poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java Tue Jan  7 
22:46:29 2020
@@ -92,7 +92,13 @@ public enum ClassIDPredefined {
 /** URL Moniker **/
 URL_MONIKER  ("{79EAC9E0-BAF9-11CE-8C82-00AA004BA90B}", null, 
null),
 /** File Moniker **/
-FILE_MONIKER ("{0303---C000-0046}", null, null)
+FILE_MONIKER ("{0303---C000-0046}", null, 
null),
+/** Document summary information first property section **/
+DOC_SUMMARY  ("{D5CDD502-2E9C-101B-9397-08002B2CF9AE}", null, 
null),
+/** Document summary information user defined properties section **/
+USER_PROPERTIES  ("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", null, 
null),
+/** Summary information property section **/
+SUMMARY_PROPERTIES   ("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", null, 
null);
 ;
 
 

Modified: poi/trunk/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java?rev=1872473=1872472=1872473=diff
==
--- poi/trunk/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java Tue 
Jan  7 22:46:29 2020
@@ -17,9 +17,11 @@
 
 package org.apache.poi.hpsf;
 
+import static org.apache.poi.hpsf.ClassIDPredefined.DOC_SUMMARY;
+import static org.apache.poi.hpsf.ClassIDPredefined.USER_PROPERTIES;
+
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -32,6 +34,7 @@ import org.apache.poi.hpsf.wellknown.Pro
  *
  * @see SummaryInformation
  */
+@SuppressWarnings("unused")
 public class DocumentSummaryInformation extends PropertySet {
 
 /**
@@ -44,15 +47,10 @@ public class DocumentSummaryInformation
 /**
  * The DocumentSummaryInformation's first and second sections' format ID.
  */
-private static final ClassID DOC_SUMMARY_INFORMATION =
-new ClassID("{D5CDD502-2E9C-101B-9397-08002B2CF9AE}");
-private static final ClassID USER_DEFINED_PROPERTIES =
-new ClassID("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}");
-
 public static final ClassID[] FORMAT_ID = {
-DOC_SUMMARY_INFORMATION, USER_DEFINED_PROPERTIES
+DOC_SUMMARY.getClassID(), USER_PROPERTIES.getClassID()
 };
-
+
 @Override
 public PropertyIDMap getPropertySetIDMap() {
return PropertyIDMap.getDocumentSummaryInformationProperties();
@@ -63,10 +61,10 @@ public class DocumentSummaryInformation
  * Creates an empty {@link DocumentSummaryInformation}.
  */
 public DocumentSummaryInformation() {
-getFirstSection().setFormatID(DOC_SUMMARY_INFORMATION);
+getFirstSection().setFormatID(DOC_SUMMARY.getClassID());
 }
 
-
+
 /**
  * Creates a {@link DocumentSummaryInformation} from a given
  * {@link PropertySet}.
@@ -97,20 +95,16 @@ public class DocumentSummaryInformation
  *
  * @param stream Holds the data making out the property set
  * stream.
- * @throws MarkUnsupportedException
- *if the stream does not support the {@link InputStream#markSupported} 
method.
  * @throws IOException
  *if the {@link InputStream} cannot be accessed as needed.
  * @exception NoPropertySetStreamException
  *if the input stream does not contain a property set.
- * @exception UnsupportedEncodingException
- *if a character encoding is not supported.
  */
 public DocumentSummaryInformation(final InputStream stream)
-throws NoPropertySetStreamException, MarkUnsupportedException, 
IOException, UnsupportedEncodingException {
+throws NoPropertySetStreamException, IOException {
  

svn commit: r1872469 - in /poi/trunk: jenkins/create_jobs.groovy sonar/sonar-project.properties

2020-01-07 Thread kiwiwings
Author: kiwiwings
Date: Tue Jan  7 21:15:33 2020
New Revision: 1872469

URL: http://svn.apache.org/viewvc?rev=1872469=rev
Log:
test if sonar can be configured via properties file
sonarcloud complained about jacoco native report paths

Added:
poi/trunk/sonar/sonar-project.properties
Modified:
poi/trunk/jenkins/create_jobs.groovy

Modified: poi/trunk/jenkins/create_jobs.groovy
URL: 
http://svn.apache.org/viewvc/poi/trunk/jenkins/create_jobs.groovy?rev=1872469=1872468=1872469=diff
==
--- poi/trunk/jenkins/create_jobs.groovy (original)
+++ poi/trunk/jenkins/create_jobs.groovy Tue Jan  7 21:15:33 2020
@@ -3,7 +3,7 @@
 //
 // See https://github.com/jenkinsci/job-dsl-plugin/wiki for information about 
the DSL, you can
 // use http://job-dsl.herokuapp.com/ to validate the code before checkin
-// 
+//
 
 def triggerSundays = '''
 # only run this once per week on Sundays
@@ -294,10 +294,7 @@ poijobs.each { poijob ->
 maven {
 if (poijob.sonar) {
 goals('clean package sonar:sonar')
-property('sonar.host.url', 'https://sonarcloud.io')
 property('sonar.login', '${POI_SONAR_TOKEN}')
-property('sonar.projectKey', 'poi-parent')
-property('sonar.organization', 'apache')
 } else {
 goals('package')
 }
@@ -367,10 +364,7 @@ poijobs.each { poijob ->
 
 gradle {
 switches('-PenableSonar')
-switches('-Dsonar.host.url=https://sonarcloud.io')
 switches('-Dsonar.login=${POI_SONAR_TOKEN}')
-switches('-Dsonar.projectKey=poi-parent')
-switches('-Dsonar.organization=apache')
 tasks('sonarqube')
 useWrapper(false)
 }

Added: poi/trunk/sonar/sonar-project.properties
URL: 
http://svn.apache.org/viewvc/poi/trunk/sonar/sonar-project.properties?rev=1872469=auto
==
--- poi/trunk/sonar/sonar-project.properties (added)
+++ poi/trunk/sonar/sonar-project.properties Tue Jan  7 21:15:33 2020
@@ -0,0 +1,11 @@
+# Sonar configuration file:
+# see https://sonarcloud.io/documentation/analysis/scan/sonarscanner/
+# and https://sonarcloud.io/documentation/analysis/analysis-parameters/
+
+# Organization and project keys are displayed in the right sidebar of the 
project homepage
+sonar.organization=apache
+sonar.projectKey=poi-parent
+sonar.host.url=https://sonarcloud.io
+
+sonar.jacoco.reportPaths=target/jacoco.exec
+sonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
\ No newline at end of file



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1872402 - /poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java

2020-01-06 Thread kiwiwings
Author: kiwiwings
Date: Tue Jan  7 00:53:19 2020
New Revision: 1872402

URL: http://svn.apache.org/viewvc?rev=1872402=rev
Log:
ignore path conversion for URLs

Modified:
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java?rev=1872402=1872401=1872402=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java Tue Jan 
 7 00:53:19 2020
@@ -134,7 +134,11 @@ public final class TestBugs extends Base
 for (int i=0; i

svn commit: r1872400 - in /poi/trunk/sonar: integration-test/ integration-test/pom.xml pom.xml

2020-01-06 Thread kiwiwings
Author: kiwiwings
Date: Tue Jan  7 00:44:01 2020
New Revision: 1872400

URL: http://svn.apache.org/viewvc?rev=1872400=rev
Log:
add integration-test to sonar to update test coverage

Added:
poi/trunk/sonar/integration-test/
poi/trunk/sonar/integration-test/pom.xml
  - copied, changed from r1872397, poi/trunk/sonar/ooxml/pom.xml
Modified:
poi/trunk/sonar/pom.xml

Copied: poi/trunk/sonar/integration-test/pom.xml (from r1872397, 
poi/trunk/sonar/ooxml/pom.xml)
URL: 
http://svn.apache.org/viewvc/poi/trunk/sonar/integration-test/pom.xml?p2=poi/trunk/sonar/integration-test/pom.xml=poi/trunk/sonar/ooxml/pom.xml=1872397=1872400=1872400=diff
==
--- poi/trunk/sonar/ooxml/pom.xml (original)
+++ poi/trunk/sonar/integration-test/pom.xml Tue Jan  7 00:44:01 2020
@@ -8,10 +8,10 @@
 poi-parent
 4.1.2-SNAPSHOT
 
-poi-ooxml
+integration-test
 jar
 
-Apache POI OOXML package
+Apache POI integration test
 
 
 
@@ -21,36 +21,6 @@
 ${maven.plugin.resources.version}
 
 
-copy-sources
-generate-sources
-
-copy-resources
-
-
-
${basedir}/src/main/java
-
-
-../../src/ooxml/java
-
-
-
-
-
-copy-resources
-generate-resources
-
-copy-resources
-
-
-
${basedir}/src/main/resources
-
-
-
../../src/resources/ooxml
-
-
-
-
-
 copy-tests
 generate-test-sources
 
@@ -60,7 +30,7 @@
 
${basedir}/src/test/java
 
 
-
../../src/ooxml/testcases
+
../../src/integrationtest
 
 
 
@@ -84,7 +54,7 @@
 
 
 
-  
+
 
 
 
@@ -94,6 +64,7 @@
 ${maven.plugin.surefire.version}
 
 @{argLine} -Duser.language=en -Duser.country=US 
-Xmx1024m -Djava.io.tmpdir=${basedir}/target/tmp 
-XX:-OmitStackTraceInFastThrow
+../..
 
 
 
@@ -102,65 +73,21 @@
 
 
 ${project.groupId}
-poi-ooxml-schema
-${project.version}
-
-
-${project.groupId}
-poi-ooxml-schema-encryption
+poi-ooxml
 ${project.version}
 
 
 ${project.groupId}
-poi-ooxml-schema-security
+poi-scratchpad
 ${project.version}
 
 
 ${project.groupId}
-poi-main
+poi-examples
 ${project.version}
 
-
-${project.groupId}
-poi-main
-${project.version}
-test-jar
-test
-
 
 
-  org.apache.xmlbeans
-  xmlbeans
-  ${xmlbeans.version}
-
-
-
-org.bouncycastle
-bcpkix-jdk15on
-1.62
-
-
-org.bouncycastle
-bcprov-jdk15on
-1.62
-
-
-org.apache.santuario
-xmlsec
-2.1.2
-
-
-org.apache.commons
-commons-compress
-1.19
-
-
-com.github.virtuald
-curvesapi
-1.06
-
-  
-
 junit
 junit
 ${junit.version}
@@ -180,17 +107,13 @@
 test
 
 
-org.openjdk.jmh
-jmh-generator-annprocess
-1.19
+org.apache.ant
+ant
+1.10.7
 test
 
 
-
-
-org.apache.xmlgraphics
-batik-all
-1.11
-
+
+
 
 

Modified: poi/trunk/sonar/pom.xml
URL: 
http://svn.apache.org/viewvc/poi/trunk/sonar/pom.xml?rev=1872400=1872399=1872400=diff

svn commit: r1872397 [1/3] - in /poi/trunk/src/testcases/org/apache/poi: hssf/usermodel/TestBugs.java ss/usermodel/BaseTestBugzillaIssues.java

2020-01-06 Thread kiwiwings
Author: kiwiwings
Date: Mon Jan  6 21:48:00 2020
New Revision: 1872397

URL: http://svn.apache.org/viewvc?rev=1872397=rev
Log:
sonar fixes - use assert in junit tests
use try-with-resources
remove obsolete and renamed OPOIFS references
add logic to unit tests which just opened a file, by rewriting it and some 
formula evaluation logic

Modified:
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java

poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java


-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1872397 [3/3] - in /poi/trunk/src/testcases/org/apache/poi: hssf/usermodel/TestBugs.java ss/usermodel/BaseTestBugzillaIssues.java

2020-01-06 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java?rev=1872397=1872396=1872397=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java 
Mon Jan  6 21:48:00 2020
@@ -50,8 +50,6 @@ import org.junit.Test;
 
 /**
  * A base class for bugzilla issues that can be described in terms of common 
ss interfaces.
- *
- * @author Yegor Kozlov
  */
 public abstract class BaseTestBugzillaIssues {
 private static final POILogger logger = 
POILogFactory.getLogger(BaseTestBugzillaIssues.class);
@@ -73,7 +71,7 @@ public abstract class BaseTestBugzillaIs
  * where delta is an absolute error value, this function's factor is a 
relative error,
  * so it's easier to express "actual is within 5% of expected".
  */
-public static void assertAlmostEquals(double expected, double actual, 
float factor) {
+private static void assertAlmostEquals(double expected, double actual, 
float factor) {
 double diff = Math.abs(expected - actual);
 double fuzz = expected * factor;
 if (diff > fuzz) {
@@ -89,22 +87,21 @@ public abstract class BaseTestBugzillaIs
  */
 @Test
 public final void bug23094() throws IOException {
-Workbook wb1 = _testDataProvider.createWorkbook();
-Sheet s = wb1.createSheet();
-Row r = s.createRow(0);
-
r.createCell(0).setCellFormula("HYPERLINK(\"http://jakarta.apache.org\",\"Jakarta\;)");
-
r.createCell(1).setCellFormula("HYPERLINK(\"http://google.com\",\"Google\;)");
-
-Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1);
-wb1.close();
-r = wb2.getSheetAt(0).getRow(0);
-
-Cell cell_0 = r.getCell(0);
-assertEquals("HYPERLINK(\"http://jakarta.apache.org\",\"Jakarta\;)", 
cell_0.getCellFormula());
-Cell cell_1 = r.getCell(1);
-assertEquals("HYPERLINK(\"http://google.com\",\"Google\;)", 
cell_1.getCellFormula());
-
-wb2.close();
+try (Workbook wb1 = _testDataProvider.createWorkbook()) {
+Sheet s = wb1.createSheet();
+Row r = s.createRow(0);
+
r.createCell(0).setCellFormula("HYPERLINK(\"http://jakarta.apache.org\",\"Jakarta\;)");
+
r.createCell(1).setCellFormula("HYPERLINK(\"http://google.com\",\"Google\;)");
+
+try (Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1)) {
+r = wb2.getSheetAt(0).getRow(0);
+
+Cell cell_0 = r.getCell(0);
+
assertEquals("HYPERLINK(\"http://jakarta.apache.org\",\"Jakarta\;)", 
cell_0.getCellFormula());
+Cell cell_1 = r.getCell(1);
+assertEquals("HYPERLINK(\"http://google.com\",\"Google\;)", 
cell_1.getCellFormula());
+}
+}
 }
 
 /**
@@ -113,40 +110,40 @@ public abstract class BaseTestBugzillaIs
  * @param  num the number of strings to generate
  */
 public final void bug15375(int num) throws IOException {
-Workbook wb1 = _testDataProvider.createWorkbook();
-Sheet sheet = wb1.createSheet();
-CreationHelper factory = wb1.getCreationHelper();
-
-for (int i = 0; i < num; i++) {
-String tmp1 = "Test1" + i;
-String tmp2 = "Test2" + i;
-String tmp3 = "Test3" + i;
-
-Row row = sheet.createRow(i);
-
-Cell cell = row.createCell(0);
-cell.setCellValue(factory.createRichTextString(tmp1));
-cell = row.createCell(1);
-cell.setCellValue(factory.createRichTextString(tmp2));
-cell = row.createCell(2);
-cell.setCellValue(factory.createRichTextString(tmp3));
-}
-Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1);
-wb1.close();
+try (Workbook wb1 = _testDataProvider.createWorkbook()) {
+Sheet sheet = wb1.createSheet();
+CreationHelper factory = wb1.getCreationHelper();
+
+for (int i = 0; i < num; i++) {
+String tmp1 = "Test1" + i;
+String tmp2 = "Test2" + i;
+String tmp3 = "Test3" + i;
+
+Row row = sheet.createRow(i);
+
+Cell cell = row.createCell(0);
+cell.setCellValue(factory.createRichTextString(tmp1));
+cell = row.createCell(1);
+cell.setCellValue(factory.createRichTextString(tmp2));
+cell = row.createCell(2);
+cell.setCellValue(factory.createRichTextString(tmp3));
+}
 
-sheet = wb2.getSheetAt(0);
-for (int i = 0; i < num; i++) {
-String tmp1 = "Test1" + i;
-String 

svn commit: r1872397 [2/3] - in /poi/trunk/src/testcases/org/apache/poi: hssf/usermodel/TestBugs.java ss/usermodel/BaseTestBugzillaIssues.java

2020-01-06 Thread kiwiwings


Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java?rev=1872397=1872396=1872397=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java Mon Jan 
 6 21:48:00 2020
@@ -18,31 +18,33 @@
 package org.apache.poi.hssf.usermodel;
 
 import static org.apache.poi.POITestCase.assertContains;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.apache.poi.hssf.HSSFTestDataSamples.openSampleWorkbook;
+import static org.apache.poi.hssf.HSSFTestDataSamples.writeOutAndReadBack;
+import static org.junit.Assert.*;
 
-import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
+import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
 import java.util.TimeZone;
+import java.util.function.Consumer;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+import javax.imageio.ImageIO;
 
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.hpsf.PropertySet;
@@ -87,9 +89,13 @@ import org.apache.poi.ss.usermodel.Sheet
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.util.LocaleUtil;
+import org.junit.AfterClass;
 import org.junit.Assume;
+import org.junit.BeforeClass;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 
 /**
  * Testcases for bugs entered in bugzilla
@@ -99,42 +105,57 @@ import org.junit.Test;
  * define the test in the base class {@link BaseTestBugzillaIssues}
  */
 public final class TestBugs extends BaseTestBugzillaIssues {
+
+@Rule
+public ExpectedException thrown = ExpectedException.none();
+
 public TestBugs() {
 super(HSSFITestDataProvider.instance);
 }
 
-private static HSSFWorkbook openSample(String sampleFileName) {
-return 
HSSFITestDataProvider.instance.openSampleWorkbook(sampleFileName);
+private static final Map SIMPLE_REFS = new 
LinkedHashMap<>();
+
+// References used for the simpleTest convenience method
+@BeforeClass
+public static void initSimpleRefs() {
+String[] refs = {
+"Calculations",
+"/Documents and Settings/crawformk.EUU/Local Settings/Temporary 
Internet Files/OLK64/Daily Status Report Generation Files/DST - Daily Data 
Transfer Sheet - 2002.xls",
+"Sheet1",
+"/Documents and Settings/donnag/Local Settings/Temporary Internet 
Files/OLK7/0231324V1-1.xls",
+"Sheet1",
+"refs/airport.xls",
+"Sheet1",
+"9http://www.principlesofeconometrics.com/excel/airline.xls;,
+"Sheet1",
+"C:Documents and Settings/Yegor/My Documents/csco.xls",
+};
+
+for (int i=0; i 
assertNotNull(wb.getSheetAt(0).getRow(45)));
 }
 
 /**
  * Double byte strings
  */
 @Test
-public void bug22742() {
-openSample("22742.xls");
+public void bug22742() throws IOException {
+simpleTest("22742.xls");
 }
 
 /**
  * Double byte strings
  */
 @Test
-public void bug12561_1() {
-openSample("12561-1.xls");
+public void bug12561_1() throws IOException {
+simpleTest("12561-1.xls");
 }
 
 /**
  * Double byte strings
  */
 @Test
-public void bug12561_2() {
-openSample("12561-2.xls");
+public void bug12561_2() throws IOException {
+simpleTest("12561-2.xls");
 }
 
 /**
@@ -241,8 +252,8 @@ public final class TestBugs extends Base
  * File supplied by jubeson
  */
 @Test
-public void bug12843_1() {
-openSample("12843-1.xls");
+public void bug12843_1() throws IOException {
+simpleTest("12843-1.xls");
 }
 
 /**
@@ -250,45 +261,45 @@ public final class TestBugs extends Base
  * File supplied by Paul Chung
  */
 @Test
-public void bug12843_2() {
-openSample("12843-2.xls");
+public void bug12843_2() 

svn commit: r1872302 [1/2] - in /poi/trunk/src: java/org/apache/poi/hssf/record/ testcases/org/apache/poi/hssf/extractor/ testcases/org/apache/poi/hssf/model/ testcases/org/apache/poi/hssf/record/ tes

2020-01-03 Thread kiwiwings
Author: kiwiwings
Date: Fri Jan  3 23:30:36 2020
New Revision: 1872302

URL: http://svn.apache.org/viewvc?rev=1872302=rev
Log:
Sonar fixes - Tests should include assertions

Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/OldSheetRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java
poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java
poi/trunk/src/testcases/org/apache/poi/hssf/model/TestFormulaParser.java
poi/trunk/src/testcases/org/apache/poi/hssf/model/TestSheet.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/TestCommonObjectDataSubRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/TestEmbeddedObjectRefSubRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExtendedFormatRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestLbsDataSubRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameCommentRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestObjRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestRecalcIdRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestStyleRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSubRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSupBookRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTableRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/TestWriteAccessRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaFormatRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAxisLineFormatRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAxisOptionsRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAxisParentRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAxisRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAxisUsedRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestBarRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestCategorySeriesAxisRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestChartRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestDatRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestDataFormatRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestDefaultDataLabelTextPropertiesRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestFontBasisRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestFontIndexRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestFrameRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestLegendRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestLineFormatRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestLinkedDataRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestNumberFormatIndexRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestObjectLinkRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestPlotGrowthRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSeriesChartGroupIndexRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSeriesIndexRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSeriesLabelsRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSeriesListRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSeriesRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSeriesTextRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSeriesToChartGroupRecord.java

poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSheetPropertiesRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestTextRecord.java
poi/trunk/src/testcases/org

svn commit: r1872302 [2/2] - in /poi/trunk/src: java/org/apache/poi/hssf/record/ testcases/org/apache/poi/hssf/extractor/ testcases/org/apache/poi/hssf/model/ testcases/org/apache/poi/hssf/record/ tes

2020-01-03 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java?rev=1872302=1872301=1872302=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java 
Fri Jan  3 23:30:36 2020
@@ -17,6 +17,7 @@
 
 package org.apache.poi.hssf.record;
 
+import static 
org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -57,7 +58,7 @@ public final class TestExternalNameRecor
assertEquals("FDS", enr.getText());
 
// bug 44695
-   TestcaseRecordInputStream.confirmRecordEncoding(0x0023, 
dataFDS, enr.serialize());
+   confirmRecordEncoding(0x0023, dataFDS, enr.serialize());
}
 
@Test
@@ -81,7 +82,7 @@ public final class TestExternalNameRecor
assertFalse(enr.isPicureLink());
assertTrue(enr.isStdDocumentNameIdentifier());
 
-   TestcaseRecordInputStream.confirmRecordEncoding(0x0023, 
dataAutoDocName, enr.serialize());
+   confirmRecordEncoding(0x0023, dataAutoDocName, enr.serialize());
}
 
@Test
@@ -96,7 +97,7 @@ public final class TestExternalNameRecor
assertFalse(enr.isPicureLink());
assertFalse(enr.isStdDocumentNameIdentifier());
 
-   TestcaseRecordInputStream.confirmRecordEncoding(0x0023, 
dataPlainName, enr.serialize());
+   confirmRecordEncoding(0x0023, dataPlainName, enr.serialize());
}
 
@Test
@@ -121,7 +122,7 @@ public final class TestExternalNameRecor
ExternalNameRecord enr = createSimpleENR(dataDDE);
assertEquals("010672AT0 
MUNI,[RTG_MOODY_UNDERLYING,RTG_SP_UNDERLYING]", enr.getText());
 
-   TestcaseRecordInputStream.confirmRecordEncoding(0x0023, 
dataDDE, enr.serialize());
+   confirmRecordEncoding(0x0023, dataDDE, enr.serialize());
}
 
@Test

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java?rev=1872302=1872301=1872302=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java Fri 
Jan  3 23:30:36 2020
@@ -18,6 +18,7 @@
 package org.apache.poi.hssf.record;
 
 
+import static 
org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -67,6 +68,7 @@ public final class TestFontRecord {
 assertEquals(21 + 4, record.getRecordSize());
 }
 
+@SuppressWarnings("squid:S2699")
 @Test
 public void testStore() {
 //  .fontheight  = c8
@@ -96,7 +98,7 @@ public final class TestFontRecord {
 record.setFontName("Arial");
 
 byte [] recordBytes = record.serialize();
-TestcaseRecordInputStream.confirmRecordEncoding(0x31, data, 
recordBytes);
+confirmRecordEncoding(0x31, data, recordBytes);
 }
 
 @Test
@@ -150,6 +152,6 @@ public final class TestFontRecord {
 
 assertEquals(0, fr.getFontName().length());
 byte[] recordBytes = fr.serialize();
-TestcaseRecordInputStream.confirmRecordEncoding(SID, emptyNameData, 
recordBytes);
+confirmRecordEncoding(SID, emptyNameData, recordBytes);
 }
 }

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java?rev=1872302=1872301=1872302=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java 
Fri Jan  3 23:30:36 2020
@@ -16,6 +16,7 @@
  */
 package org.apache.poi.hssf.record;
 
+import static 
org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
@@ -453,12 +454,13 @@ public final class TestHyperlinkRecord {
 
 }
 
+@SuppressWarnings("squid:S2699")
 @Test

svn commit: r1872223 - in /poi/trunk/src: java/org/apache/poi/util/LZWDecompresser.java scratchpad/src/org/apache/poi/hdgf/HDGFLZW.java scratchpad/src/org/apache/poi/hdgf/HDGFLZWCompressor.java scratc

2020-01-01 Thread kiwiwings
Author: kiwiwings
Date: Wed Jan  1 22:44:42 2020
New Revision: 1872223

URL: http://svn.apache.org/viewvc?rev=1872223=rev
Log:
Fix Visio compression

Modified:
poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java
poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/HDGFLZW.java
poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/HDGFLZWCompressor.java
poi/trunk/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFLZW.java

Modified: poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java?rev=1872223=187=1872223=diff
==
--- poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/LZWDecompresser.java Wed Jan  1 
22:44:42 2020
@@ -23,184 +23,167 @@ import java.io.OutputStream;
 
 /**
  * This class provides common functionality for the
- *  various LZW implementations in the different file
- *  formats.
+ * various LZW implementations in the different file
+ * formats.
  * It's currently used by HDGF and HMEF.
- *
+ * 
  * Two good resources on LZW are:
- *  http://en.wikipedia.org/wiki/LZW
- *  http://marknelson.us/1989/10/01/lzw-data-compression/
+ * http://en.wikipedia.org/wiki/LZW
+ * http://marknelson.us/1989/10/01/lzw-data-compression/
  */
 public abstract class LZWDecompresser {
 
-   //arbitrarily selected; may need to increase
-   private static final int MAX_RECORD_LENGTH = 1_000_000;
-
-   /**
-* Does the mask bit mean it's compressed or uncompressed?
-*/
-   private final boolean maskMeansCompressed;
-   /**
-* How much to append to the code length in the stream
-*  to get the real code length? Normally 2 or 3
-*/
-   private final int codeLengthIncrease;
-   /**
-* Does the 12 bits of the position get stored in
-*  Little Endian or Big Endian form?
-* This controls whether a pos+length of 0x12 0x34
-*  becomes a position of 0x123 or 0x312
-*/
-   private final boolean positionIsBigEndian;
-   
-   protected LZWDecompresser(boolean maskMeansCompressed, 
-int codeLengthIncrease, boolean positionIsBigEndian) {
-  this.maskMeansCompressed = maskMeansCompressed;
-  this.codeLengthIncrease = codeLengthIncrease;
-  this.positionIsBigEndian = positionIsBigEndian;
-   }
-   
-   /**
-* Populates the dictionary, and returns where in it
-*  to begin writing new codes.
-* Generally, if the dictionary is pre-populated, then new
-*  codes should be placed at the end of that block.
-* Equally, if the dictionary is left with all zeros, then
-*  usually the new codes can go in at the start.
-*/
-   protected abstract int populateDictionary(byte[] dict);
-   
-   /**
-* Adjusts the position offset if needed when looking
-*  something up in the dictionary.
-*/
-   protected abstract int adjustDictionaryOffset(int offset);
-   
-   /**
-* Decompresses the given input stream, returning the array of bytes
-*  of the decompressed input.
-*/
-   public byte[] decompress(InputStream src) throws IOException {
-  ByteArrayOutputStream res = new ByteArrayOutputStream();
-  decompress(src,res);
-  return res.toByteArray();
-   }
-   
-   /**
-* Perform a streaming decompression of the input.
-* Works by:
-* 1) Reading a flag byte, the 8 bits of which tell you if the
-* following 8 codes are compressed our un-compressed
-* 2) Consider the 8 bits in turn
-* 3) If the bit is set, the next code is un-compressed, so
-* add it to the dictionary and output it
-* 4) If the bit isn't set, then read in the length and start
-* position in the dictionary, and output the bytes there
-* 5) Loop until we've done all 8 bits, then read in the next
-* flag byte
-*/
-   public void decompress(InputStream src, OutputStream res) throws 
IOException {
-  // How far through the output we've got
-  // (This is normally used &4095, so it nicely wraps)
-  // The initial value is set when populating the dictionary
-  int pos;
-  // The flag byte is treated as its 8 individual
-  //  bits, which tell us if the following 8 codes
-  //  are compressed or un-compressed
-  int flag;
-  // The mask, between 1 and 255, which is used when
-  //  processing each bit of the flag byte in turn
-  int mask;
-
-  // We use 12 bit codes:
-  // * 0-255 are real bytes
-  // * 256-4095 are the substring codes
-  // Java handily initialises our buffer / dictionary
-  //  to all zeros
-  byte[] buffer = new byte[4096];
-  pos = populateDictionary(buffer);
-
-  // These are bytes as looked up in the dictionary
-  // It needs to be signed, as it'll get passed on to
-  //  the output stream
-  byte[] dataB = IOUtils.safelyAllocat

svn commit: r1872092 - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/excelant/ testcases/org/apache/poi/ testcases/org/apache/poi/ddf/ testcases/org/apache/poi/hpsf/basic/

2019-12-29 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec 30 00:08:24 2019
New Revision: 1872092

URL: http://svn.apache.org/viewvc?rev=1872092=rev
Log:
Sonar fixes

Modified:

poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java
poi/trunk/src/testcases/org/apache/poi/POITestCase.java
poi/trunk/src/testcases/org/apache/poi/TestPOITestCase.java
poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java
poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDump.java
poi/trunk/src/testcases/org/apache/poi/hpsf/basic/TestReadAllFiles.java
poi/trunk/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java

Modified: 
poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java?rev=1872092=1872091=1872092=diff
==
--- 
poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java 
(original)
+++ 
poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java 
Mon Dec 30 00:08:24 2019
@@ -345,6 +345,8 @@ public class TestBuildFile {
 @Test
 public void testPassOnError() {
 executeTarget("test-passonerror");
+assertLogContaining("Using input file: " + TestBuildFile.getDataDir() 
+ "/spreadsheet/excelant.xls");
+assertLogContaining("Test named failonerror failed because 1 of 0 
evaluations failed to evaluate correctly.");
 }
 
 @Test

Modified: poi/trunk/src/testcases/org/apache/poi/POITestCase.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/POITestCase.java?rev=1872092=1872091=1872092=diff
==
--- poi/trunk/src/testcases/org/apache/poi/POITestCase.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/POITestCase.java Mon Dec 30 00:08:24 
2019
@@ -17,37 +17,32 @@
 
 package org.apache.poi;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.endsWith;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.startsWith;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.junit.Assume.assumeTrue;
 
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.startsWith;
-import static org.hamcrest.CoreMatchers.endsWith;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.hasItem;
-
-import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.poi.util.SuppressForbidden;
 import org.apache.poi.util.Internal;
+import org.apache.poi.util.SuppressForbidden;
+import org.mockito.internal.matchers.apachecommons.ReflectionEquals;
 
 /**
- * Util class for POI JUnit TestCases, which provide additional features 
+ * Util class for POI JUnit TestCases, which provide additional features
  */
 @Internal
 public final class POITestCase {
@@ -69,7 +64,7 @@ public final class POITestCase {
 assertNotNull(suffix);
 assertThat(string, endsWith(suffix));
 }
-
+
 public static void assertContains(String haystack, String needle) {
 assertNotNull(haystack);
 assertNotNull(needle);
@@ -94,13 +89,13 @@ public final class POITestCase {
 public static void assertContainsIgnoreCase(String haystack, String 
needle) {
 assertContainsIgnoreCase(haystack, needle, Locale.ROOT);
 }
-
+
 public static void assertNotContained(String haystack, String needle) {
 assertNotNull(haystack);
 assertNotNull(needle);
 assertThat(haystack, not(containsString(needle)));
 }
-
+
 /**
  * @param map haystack
  * @param key needle
@@ -118,7 +113,7 @@ public final class POITestCase {
 fail("Set should not contain " + element);
 }*/
 }
- 
+
 /**
  * Utility method to get the value of a private/protected field.
  * Only use this method in test cases!!!
@@ -140,7 +135,7 @@ public final class POITestCase {
 throw new RuntimeException("Cannot access field '" + fieldName + 
"' of class " + clazz, pae.getException(

svn commit: r1872091 - /poi/site/src/documentation/content/xdocs/changes.xml

2019-12-29 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec 30 00:04:46 2019
New Revision: 1872091

URL: http://svn.apache.org/viewvc?rev=1872091=rev
Log:
#64036 - add changes info

Modified:
poi/site/src/documentation/content/xdocs/changes.xml

Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1872091=1872090=1872091=diff
==
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Mon Dec 30 00:04:46 
2019
@@ -96,7 +96,8 @@
 Inconsistent mapping of Norwegian locales for date 
formats
 Fix 
Bug in XSSFTable.setCellReferences when table is single cell
 Replace Cloneable / clone() with copy constructor
-  
+Replace reflection calls in factories for Java 9+
+cd  
 
 
 
@@ -157,7 +158,6 @@
 Conditional Format rule evaluation calculates relative 
references incorrectly
 Fix 
NPE in EDATE function when date evaluates to an invalid value
 Work 
around illegal reflective access in Java 9+ when freeing buffers
-Work 
around illegal reflective access in Java 9+ when freeing buffers
 OPCPackage 
Potentially clobbers files on close()
 Make D* functions ignore case in headings 
 Adding 
custom properties creates invalid .xlsx file on second write



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1872066 - in /poi/trunk/src: java/org/apache/poi/hssf/usermodel/ java/org/apache/poi/sl/usermodel/ java/org/apache/poi/ss/usermodel/ ooxml/java/org/apache/poi/xslf/usermodel/ ooxml/java/o

2019-12-28 Thread kiwiwings
Author: kiwiwings
Date: Sat Dec 28 22:39:26 2019
New Revision: 1872066

URL: http://svn.apache.org/viewvc?rev=1872066=rev
Log:
#64036 - remove reflective calls in Workbook- and SlideShowFactory

Modified:
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java
poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java
poi/trunk/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java

poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShowFactory.java

poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java
poi/trunk/src/ooxml/testcases/org/apache/poi/ss/TestWorkbookFactory.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowFactory.java

Modified: 
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java?rev=1872066=1872065=1872066=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java 
Sat Dec 28 22:39:26 2019
@@ -31,6 +31,12 @@ import org.apache.poi.util.Internal;
 @SuppressWarnings("unused")
 @Internal
 public class HSSFWorkbookFactory extends WorkbookFactory {
+
+static {
+WorkbookFactory.createHssfFromScratch = 
HSSFWorkbookFactory::createWorkbook;
+WorkbookFactory.createHssfByNode = HSSFWorkbookFactory::createWorkbook;
+}
+
 /**
  * Create a new empty Workbook
  *

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=1872066=1872065=1872066=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 28 22:39:26 2019
@@ -20,21 +20,40 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 
 import org.apache.poi.EncryptedDocumentException;
-import org.apache.poi.OldFileFormatException;
 import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
 import org.apache.poi.poifs.crypt.Decryptor;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.DocumentFactoryHelper;
 import org.apache.poi.poifs.filesystem.FileMagic;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.util.IOUtils;
 
-public class SlideShowFactory {
+@SuppressWarnings("unchecked")
+public abstract class SlideShowFactory {
+
+protected interface CreateSlideShow1 {
+SlideShow apply(T t) throws IOException;
+}
+
+protected interface CreateSlideShow2 {
+SlideShow apply(T t, U u) throws IOException;
+}
+
+// XMLSlideShow createSlideShow(InputStream stream)
+protected static CreateSlideShow1 createXslfByStream;
+
+// XMLSlideShow createSlideShow(File file, boolean readOnly)
+protected static CreateSlideShow2 createXslfByFile;
+
+// HSLFSlideShow createSlideShow(final POIFSFileSystem fs)
+protected static CreateSlideShow1 createHslfByPoifs;
+
+// HSLFSlideShow createSlideShow(final DirectoryNode root)
+protected static CreateSlideShow1 createHslfByNode;
+
 /**
  * Creates a SlideShow from the given POIFSFileSystem.
  *
@@ -106,8 +125,8 @@ public class SlideShowFactory {
 InputStream stream = null;
 try {
 stream = DocumentFactoryHelper.getDecryptedStream(root, 
password);
-
-return createXSLFSlideShow(stream);
+initXslf();
+return (SlideShow) createXslfByStream.apply(stream);
 } finally {
 IOUtils.closeQuietly(stream);
 
@@ -125,7 +144,8 @@ public class SlideShowFactory {
 passwordSet = true;
 }
 try {
-return createHSLFSlideShow(root);
+initHslf();
+return (SlideShow) createHslfByNode.apply(root);
 } finally {
 if (passwordSet) {
 Biff8EncryptionKey.setCurrentUserPassword(null);
@@ -162,7 +182,7 @@ public class SlideShowFactory {
 /**
  * Creates the appropriate HSLFSlideShow / XMLSlideShow from
  *  the given InputStream, which may be password protected.
- *  
+ *
  * Note that using an {@link InputStream} has a higher memory footprint
  *  than using a {@link File}.
  

svn commit: r1872041 [7/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
 Fri Dec 27 23:00:13 2019
@@ -16,343 +16,95 @@
  */
 
 package org.apache.poi.hssf.eventusermodel;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import java.util.function.Predicate;
 
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.eventusermodel.dummyrecord.LastCellOfRowDummyRecord;
 import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingCellDummyRecord;
 import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingRowDummyRecord;
-import org.apache.poi.hssf.record.BOFRecord;
 import org.apache.poi.hssf.record.BlankRecord;
 import org.apache.poi.hssf.record.CellValueRecordInterface;
 import org.apache.poi.hssf.record.DimensionsRecord;
-import org.apache.poi.hssf.record.FormulaRecord;
 import org.apache.poi.hssf.record.LabelSSTRecord;
 import org.apache.poi.hssf.record.MulBlankRecord;
 import org.apache.poi.hssf.record.NumberRecord;
 import org.apache.poi.hssf.record.Record;
 import org.apache.poi.hssf.record.RowRecord;
 import org.apache.poi.hssf.record.SharedFormulaRecord;
-import org.apache.poi.hssf.record.StringRecord;
 import org.apache.poi.hssf.record.WindowTwoRecord;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.junit.Test;
+
 /**
  * Tests for MissingRecordAwareHSSFListener
  */
-public final class TestMissingRecordAwareHSSFListener extends TestCase {
-   
-   private Record[] r;
+public final class TestMissingRecordAwareHSSFListener {
 
-   private void readRecords(String sampleFileName) {
+   private final List _records = new ArrayList<>();
+
+   private void readRecords(String sampleFileName) throws IOException {
+   _records.clear();
HSSFRequest req = new HSSFRequest();
-   MockHSSFListener mockListen = new MockHSSFListener();
-   MissingRecordAwareHSSFListener listener = new 
MissingRecordAwareHSSFListener(mockListen);
-   req.addListenerForAllRecords(listener);
-   
+   req.addListenerForAllRecords(new 
MissingRecordAwareHSSFListener(_records::add));
+
HSSFEventFactory factory = new HSSFEventFactory();
-   try {
-   InputStream is = 
HSSFTestDataSamples.openSampleFileStream(sampleFileName);
-   POIFSFileSystem fs = new POIFSFileSystem(is);
+   try (InputStream is = 
HSSFTestDataSamples.openSampleFileStream(sampleFileName);
+POIFSFileSystem fs = new POIFSFileSystem(is)) {
factory.processWorkbookEvents(req, fs);
-   } catch (IOException e) {
-   throw new RuntimeException(e);
}
-   
-   r = mockListen.getRecords();
-   assertTrue(r.length > 100);
-   } 
-   public void openNormal() {
-   readRecords("MissingBits.xls");
+
+   assertTrue(_records.size() > 100);
}
-   
-   public void testMissingRowRecords() {
-   openNormal();
-   
+
+   @Test
+   public void testMissingRowRecords() throws IOException {
+   readRecords("MissingBits.xls");
+
// We have rows 0, 1, 2, 20 and 21
-   int row0 = -1;
-   for(int i=0; i r instanceof RowRecord && 
((RowRecord)r).getRowNumber() == 0);
assertTrue(row0 > -1);
-   
-   // Following row 0, we should have 1, 2, then dummy, then 
20+21+22
-   assertTrue(r[row0] instanceof RowRecord);
-   assertTrue(r[row0+1] instanceof RowRecord);
-   assertTrue(r[row0+2] instanceof RowRecord);
-   assertTrue(r[row0+3] instanceof MissingRowDummyRecord);
-   assertTrue(r[row0+4] instanceof MissingRowDummyRecord);
-   assertTrue(r[row0+5] instanceof MissingRowDummyRecord);
-   assertTrue(r[row0+6] instanceof MissingRowDummyRecord);
-   // ...
-   assertTrue(r[row0+18] instanceof MissingRowDummyRecord);
-   assertTrue(r[row0+19] instanceof 

svn commit: r1872041 [17/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java
 Fri Dec 27 23:00:13 2019
@@ -17,13 +17,19 @@
 
 package org.apache.poi.hssf.usermodel;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
+import org.apache.poi.POITestCase;
 import org.apache.poi.hssf.HSSFITestDataProvider;
 import org.apache.poi.hssf.record.ArrayRecord;
 import org.apache.poi.hssf.record.FormulaRecord;
@@ -31,7 +37,6 @@ import org.apache.poi.hssf.record.Record
 import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate;
 import org.apache.poi.hssf.record.aggregates.RowRecordsAggregate;
 import org.apache.poi.hssf.record.aggregates.SharedValueManager;
-import org.apache.poi.hssf.record.aggregates.TestSharedValueManager;
 import org.apache.poi.ss.usermodel.BaseTestSheetUpdateArrayFormulas;
 import org.apache.poi.ss.usermodel.CellRange;
 import org.apache.poi.ss.util.CellRangeAddress;
@@ -39,9 +44,6 @@ import org.junit.Test;
 
 /**
  * Test array formulas in HSSF
- *
- * @author Yegor Kozlov
- * @author Josh Micich
  */
 public final class TestHSSFSheetUpdateArrayFormulas extends 
BaseTestSheetUpdateArrayFormulas {
 
@@ -53,27 +55,26 @@ public final class TestHSSFSheetUpdateAr
 // Local methods here test HSSF-specific details of updating array formulas
 @Test
 public void testHSSFSetArrayFormula_singleCell() throws IOException {
-HSSFWorkbook workbook = new HSSFWorkbook();
-HSSFSheet sheet = workbook.createSheet("Sheet1");
+try (HSSFWorkbook workbook = new HSSFWorkbook()) {
+HSSFSheet sheet = workbook.createSheet("Sheet1");
 
-CellRangeAddress range = new CellRangeAddress(2, 2, 2, 2);
-HSSFCell[] cells = sheet.setArrayFormula("SUM(C11:C12*D11:D12)", 
range).getFlattenedCells();
-assertEquals(1, cells.length);
-
-// sheet.setArrayFormula creates rows and cells for the designated 
range
-assertNotNull(sheet.getRow(2));
-HSSFCell cell = sheet.getRow(2).getCell(2);
-assertNotNull(cell);
-
-assertTrue(cell.isPartOfArrayFormulaGroup());
-//retrieve the range and check it is the same
-assertEquals(range.formatAsString(), 
cell.getArrayFormulaRange().formatAsString());
-
-FormulaRecordAggregate agg = 
(FormulaRecordAggregate)cell.getCellValueRecord();
-assertEquals(range.formatAsString(), 
agg.getArrayFormulaRange().formatAsString());
-assertTrue(agg.isPartOfArrayFormula());
-
-workbook.close();
+CellRangeAddress range = new CellRangeAddress(2, 2, 2, 2);
+HSSFCell[] cells = sheet.setArrayFormula("SUM(C11:C12*D11:D12)", 
range).getFlattenedCells();
+assertEquals(1, cells.length);
+
+// sheet.setArrayFormula creates rows and cells for the designated 
range
+assertNotNull(sheet.getRow(2));
+HSSFCell cell = sheet.getRow(2).getCell(2);
+assertNotNull(cell);
+
+assertTrue(cell.isPartOfArrayFormulaGroup());
+//retrieve the range and check it is the same
+assertEquals(range.formatAsString(), 
cell.getArrayFormulaRange().formatAsString());
+
+FormulaRecordAggregate agg = (FormulaRecordAggregate) 
cell.getCellValueRecord();
+assertEquals(range.formatAsString(), 
agg.getArrayFormulaRange().formatAsString());
+assertTrue(agg.isPartOfArrayFormula());
+}
 }
 
 /**
@@ -81,53 +82,38 @@ public final class TestHSSFSheetUpdateAr
  */
 @Test
 public void testAddRemoveArrayFormulas_recordUpdates() throws IOException {
-HSSFWorkbook wb = new HSSFWorkbook();
-HSSFSheet s = wb.createSheet("Sheet1");
-
-CellRange cr = s.setArrayFormula("123", 
CellRangeAddress.valueOf("B5:C6"));
-Record[] recs;
-int ix;
-recs = RecordInspector.getRecords(s, 0);
-ix = findRecordOfType(recs, ArrayRecord.class, 0);
-confirmRecordClass(recs, ix-1, FormulaRecord.class);
-confirmRecordClass(recs, ix+1, FormulaRecord.class);
-confirmRecordClass(recs, ix+2, FormulaRecord.class);
-   

svn commit: r1872041 [11/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java Fri 
Dec 27 23:00:13 2019
@@ -20,7 +20,6 @@ package org.apache.poi.hssf.record;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.BufferedReader;
@@ -36,40 +35,33 @@ import org.apache.poi.hssf.HSSFTestDataS
 import org.apache.poi.hssf.record.common.UnicodeString;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.poifs.storage.RawDataUtil;
 import org.apache.poi.util.HexRead;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LocaleUtil;
 import org.junit.Test;
 
-import junit.framework.AssertionFailedError;
-
-/**
- * @author Marc Johnson (mjohnson at apache dot org)
- * @author Glen Stampoultzis (glens at apache.org)
- */
 public final class TestSSTRecord {
 
 /**
  * decodes hexdump files and concatenates the results
  * @param hexDumpFileNames names of sample files in the hssf test data 
directory
- * @throws IOException 
  */
 private static byte[] concatHexDumps(String... hexDumpFileNames) throws 
IOException {
 int nFiles = hexDumpFileNames.length;
 ByteArrayOutputStream baos = new ByteArrayOutputStream(nFiles * 8228);
-for (int i = 0; i < nFiles; i++) {
-String sampleFileName = hexDumpFileNames[i];
-InputStream is = 
HSSFTestDataSamples.openSampleFileStream(sampleFileName);
-BufferedReader br = new BufferedReader(new InputStreamReader(is, 
LocaleUtil.CHARSET_1252));
-
-while (true) {
-String line = br.readLine();
-if (line == null) {
-break;
+for (String sampleFileName : hexDumpFileNames) {
+try (InputStream is = 
HSSFTestDataSamples.openSampleFileStream(sampleFileName)) {
+BufferedReader br = new BufferedReader(new 
InputStreamReader(is, LocaleUtil.CHARSET_1252));
+
+while (true) {
+String line = br.readLine();
+if (line == null) {
+break;
+}
+baos.write(HexRead.readFromString(line));
 }
-baos.write(HexRead.readFromString(line));
 }
-is.close();
 }
 
 return baos.toByteArray();
@@ -89,7 +81,6 @@ public final class TestSSTRecord {
 
 /**
  * SST is often split over several {@link ContinueRecord}s
- * @throws IOException 
  */
 @Test
 public void testContinuedRecord() throws IOException {
@@ -120,9 +111,8 @@ public final class TestSSTRecord {
 //}
 
 SSTRecord rec2 = createSSTFromRawData(ser_output);
-if (!areSameSSTs(record, rec2)) {
-throw new AssertionFailedError("large SST re-serialized 
incorrectly");
-}
+assertRecordEquals(record, rec2);
+
 //if (false) {
 //// TODO - trivial differences in ContinueRecord break locations
 //// Sample data should be checked against what most recent Excel 
version produces.
@@ -131,27 +121,8 @@ public final class TestSSTRecord {
 //}
 }
 
-private boolean areSameSSTs(SSTRecord a, SSTRecord b) {
-
-if (a.getNumStrings() != b.getNumStrings()) {
-return false;
-}
-int nElems = a.getNumUniqueStrings();
-if (nElems != b.getNumUniqueStrings()) {
-return false;
-}
-for(int i=0; i> 8 ),
-(byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 0,
-(byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0
-};
+byte[] expected = {
+(byte) record.getSid(), (byte) ( record.getSid() >> 8 ),
+(byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 0,
+(byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0
+};
 
-assertEquals( expected.length, output.length );
-for ( int k = 0; k < expected.length; k++ )
-{
-assertEquals( String.valueOf( k ), expected[k], output[k] );
-}
+assertArrayEquals(expected, output);
 }
 
 /**
@@ -345,1117 +311,28 @@ public final class TestSSTRecord {
  */
 @Test
 public void testReadWriteDuplicatedRichText1() throws Exception {
-HSSFWorkbook wb = 
HSSFTestDataSamples.openSampleWorkbook("duprich1.xls");
-

svn commit: r1872041 [14/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestExtendedPivotTableViewFieldsRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestExtendedPivotTableViewFieldsRecord.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestExtendedPivotTableViewFieldsRecord.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestExtendedPivotTableViewFieldsRecord.java
 Fri Dec 27 23:00:13 2019
@@ -17,60 +17,46 @@
 
 package org.apache.poi.hssf.record.pivot;
 
+import static 
org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
+import static org.junit.Assert.assertEquals;
+
 import org.apache.poi.hssf.record.RecordInputStream;
 import org.apache.poi.hssf.record.TestcaseRecordInputStream;
 import 
org.apache.poi.hssf.record.pivottable.ExtendedPivotTableViewFieldsRecord;
 import org.apache.poi.util.HexRead;
-import org.apache.poi.util.RecordFormatException;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import org.junit.Test;
 
 /**
  * Tests for {@link ExtendedPivotTableViewFieldsRecord}
- * 
- * @author Josh Micich
  */
-public final class TestExtendedPivotTableViewFieldsRecord extends TestCase {
-   
+public final class TestExtendedPivotTableViewFieldsRecord {
+
+   @Test
public void testSubNameNotPresent_bug46693() {
// This data came from attachment 23347 of bug 46693 at offset 
0xAA43
byte[] data = HexRead.readFromString(
"00 01 14 00" + // BIFF header
"1E 14 00 0A FF FF FF FF 00 00 FF FF 00 00 00 
00 00 00 00 00");
RecordInputStream in = TestcaseRecordInputStream.create(data);
-   ExtendedPivotTableViewFieldsRecord rec;
-   try {
-   rec = new ExtendedPivotTableViewFieldsRecord(in);
-   } catch (RecordFormatException e) {
-   if (e.getMessage().equals("Expected to find a 
ContinueRecord in order to read remaining 65535 of 65535 chars")) {
-   throw new AssertionFailedError("Identified bug 
46693a");
-   }
-   throw e;
-   }
-   
+   // bug 46693a - Expected to find a ContinueRecord in order to 
read remaining 65535 of 65535 chars
+   ExtendedPivotTableViewFieldsRecord rec = new 
ExtendedPivotTableViewFieldsRecord(in);
+
assertEquals(data.length, rec.getRecordSize());
}
-   
+
+   @Test
public void testOlderFormat_bug46918() {
// There are 10 SXVDEX records in the file (not uploaded) that 
originated bugzilla 46918
// They all had the following hex encoding:
 byte[] data = HexRead.readFromString("00 01 0A 00 1E 14 00 0A FF FF FF 
FF 00 00");
 
RecordInputStream in = TestcaseRecordInputStream.create(data);
-   ExtendedPivotTableViewFieldsRecord rec;
-   try {
-   rec = new ExtendedPivotTableViewFieldsRecord(in);
-   } catch (RecordFormatException e) {
-   if (e.getMessage().equals("Not enough data (0) to read 
requested (2) bytes")) {
-   throw new AssertionFailedError("Identified bug 
46918");
-   }
-   throw e;
-   }
+   // bug 46918 - Not enough data (0) to read requested (2) bytes
+   ExtendedPivotTableViewFieldsRecord rec = new 
ExtendedPivotTableViewFieldsRecord(in);
 
 byte[] expReserData = HexRead.readFromString("1E 14 00 0A FF FF FF FF 
00 00" +
 "FF FF 00 00 00 00 00 00 00 00");
-   
-   
TestcaseRecordInputStream.confirmRecordEncoding(ExtendedPivotTableViewFieldsRecord.sid,
 expReserData, rec.serialize());
+
+   confirmRecordEncoding(ExtendedPivotTableViewFieldsRecord.sid, 
expReserData, rec.serialize());
}
 }

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestPageItemRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestPageItemRecord.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestPageItemRecord.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestPageItemRecord.java
 Fri Dec 27 23:00:13 2019
@@ -17,47 +17,45 @@
 
 package org.apache.poi.hssf.record.pivot;
 
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import static 
org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
+import 

svn commit: r1872041 [1/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Author: kiwiwings
Date: Fri Dec 27 23:00:13 2019
New Revision: 1872041

URL: http://svn.apache.org/viewvc?rev=1872041=rev
Log:
Migrate all junit tests to Junit 4
get rid of references to junit.framework
don't throw AssertionFailedErrors, but use Assert.fail instead
add try-with-resources where it was missing

Added:

poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java
  - copied, changed from r1872040, 
poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/BuildFileTest.java
Removed:

poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/BuildFileTest.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/extensions/TestXSSFSheetComments.java
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/RecordInspector.java
Modified:

poi/trunk/src/excelant/testcases/org/apache/poi/ss/examples/formula/TestExcelAntUserDefinedFunction.java

poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntPrecision.java

poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSet.java

poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSetDoubleCell.java

poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtil.java

poi/trunk/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtilFactory.java

poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/ValueRecordsAggregate.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbedded.java

poi/trunk/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java

poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestListParts.java

poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackagePartName.java

poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackageThumbnail.java

poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackagingURIHelper.java

poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestRelationships.java

poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/ZipFileAssert.java

poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCComplianceCoreProperties.java

poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestProper.java
poi/trunk/src/ooxml/testcases/org/apache/poi/util/TestIdentifierManager.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xddf/usermodel/chart/TestXDDFDataSourcesFactory.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestReadOnlySharedStringsTable.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractorUsingFactory.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/model/TestCalculationChain.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/model/TestSharedStringsTable.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/AllXSSFUsermodelTests.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMatrixFormulasFromXMLSpreadsheet.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChart.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetRowGrouping.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetUpdateArrayFormulas.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFCategoryAxis.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartAxis.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFDateAxis.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFValueAxis.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/extensions/TestXSSFBorder.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/helpers/TestHeaderFooterHelper.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/MemoryUsage.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/TestCTColComparator.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/util/TestNumericRanges.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/TestPackageCorePropertiesGetKeywords.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestExternalEntities.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf

svn commit: r1872041 [19/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/formula/atp/TestNetworkdaysFunction.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/atp/TestNetworkdaysFunction.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/ss/formula/atp/TestNetworkdaysFunction.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/ss/formula/atp/TestNetworkdaysFunction.java
 Fri Dec 27 23:00:13 2019
@@ -19,6 +19,7 @@ package org.apache.poi.ss.formula.atp;
 
 import static org.apache.poi.ss.formula.eval.ErrorEval.NAME_INVALID;
 import static org.apache.poi.ss.formula.eval.ErrorEval.VALUE_INVALID;
+import static org.junit.Assert.assertEquals;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -30,10 +31,9 @@ import org.apache.poi.ss.formula.eval.Ar
 import org.apache.poi.ss.formula.eval.NumericValueEval;
 import org.apache.poi.ss.formula.eval.StringEval;
 import org.apache.poi.ss.formula.eval.ValueEval;
+import org.junit.Test;
 
-import junit.framework.TestCase;
-
-public class TestNetworkdaysFunction extends TestCase {
+public class TestNetworkdaysFunction {
 
 private static final String STARTING_DATE = "2008/10/01";
 private static final String END_DATE = "2009/03/01";
@@ -43,46 +43,54 @@ public class TestNetworkdaysFunction ext
 
 private static final OperationEvaluationContext EC = new 
OperationEvaluationContext(null, null, 1, 1, 1, null);
 
+@Test
 public void testFailWhenNoArguments() {
 assertEquals(VALUE_INVALID, NetworkdaysFunction.instance.evaluate(new 
ValueEval[0], null));
 }
 
+@Test
 public void testFailWhenLessThan2Arguments() {
 assertEquals(VALUE_INVALID, NetworkdaysFunction.instance.evaluate(new 
ValueEval[1], null));
 }
 
+@Test
 public void testFailWhenMoreThan3Arguments() {
 assertEquals(VALUE_INVALID, NetworkdaysFunction.instance.evaluate(new 
ValueEval[4], null));
 }
 
+@Test
 public void testFailWhenArgumentsAreNotDates() {
 assertEquals(VALUE_INVALID, NetworkdaysFunction.instance.evaluate(new 
ValueEval[]{ new StringEval("Potato"),
 new StringEval("Cucumber") }, EC));
 }
 
+@Test
 public void testFailWhenStartDateAfterEndDate() {
 assertEquals(NAME_INVALID, NetworkdaysFunction.instance.evaluate(new 
ValueEval[]{ new StringEval(END_DATE),
 new StringEval(STARTING_DATE) }, EC));
 }
 
+@Test
 public void testReturnNetworkdays() {
 assertEquals(108, (int) ((NumericValueEval) 
NetworkdaysFunction.instance.evaluate(new ValueEval[]{
 new StringEval(STARTING_DATE), new StringEval(END_DATE) }, 
EC)).getNumberValue());
 }
 
+@Test
 public void testReturnNetworkdaysWithAHoliday() {
 assertEquals(107, (int) ((NumericValueEval) 
NetworkdaysFunction.instance.evaluate(new ValueEval[]{
 new StringEval(STARTING_DATE), new StringEval(END_DATE), new 
StringEval(FIRST_HOLIDAY) },
 EC)).getNumberValue());
 }
 
+@Test
 public void testReturnNetworkdaysWithManyHolidays() {
 assertEquals(105, (int) ((NumericValueEval) 
NetworkdaysFunction.instance.evaluate(new ValueEval[]{
 new StringEval(STARTING_DATE), new StringEval(END_DATE),
-new MockAreaEval(FIRST_HOLIDAY, SECOND_HOLIDAY, THIRD_HOLIDAY) 
}, EC)).getNumberValue());
+new MockAreaEval(FIRST_HOLIDAY, SECOND_HOLIDAY, 
THIRD_HOLIDAY)}, EC)).getNumberValue());
 }
 
-private class MockAreaEval extends AreaEvalBase {
+private static class MockAreaEval extends AreaEvalBase {
 
 private List holidays;
 

Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/formula/atp/TestPercentile.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/atp/TestPercentile.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/ss/formula/atp/TestPercentile.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/formula/atp/TestPercentile.java 
Fri Dec 27 23:00:13 2019
@@ -16,6 +16,8 @@
  */
 package org.apache.poi.ss.formula.atp;
 
+import static org.junit.Assert.assertEquals;
+
 import org.apache.poi.ss.formula.eval.AreaEval;
 import org.apache.poi.ss.formula.eval.BlankEval;
 import org.apache.poi.ss.formula.eval.BoolEval;
@@ -24,24 +26,12 @@ import org.apache.poi.ss.formula.eval.Nu
 import org.apache.poi.ss.formula.eval.ValueEval;
 import org.apache.poi.ss.formula.functions.AggregateFunction;
 import org.apache.poi.ss.formula.functions.EvalFactory;
-
-import junit.framework.TestCase;
+import org.junit.Test;
 
 /**
  * Testcase for Excel function PERCENTILE()
- *
- * @author T. Gordon
  */
-public class 

svn commit: r1872041 [6/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestHeaderStories.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestHeaderStories.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestHeaderStories.java
 (original)
+++ 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestHeaderStories.java
 Fri Dec 27 23:00:13 2019
@@ -17,15 +17,20 @@
 
 package org.apache.poi.hwpf.usermodel;
 
-import junit.framework.TestCase;
+import static org.apache.poi.hwpf.HWPFTestDataSamples.openSampleFile;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 
 import org.apache.poi.hwpf.HWPFDocument;
-import org.apache.poi.hwpf.HWPFTestDataSamples;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Tests for the handling of header stories into headers, footers etc
  */
-public final class TestHeaderStories extends TestCase {
+@SuppressWarnings("deprecation")
+public final class TestHeaderStories {
private HWPFDocument none;
private HWPFDocument header;
private HWPFDocument footer;
@@ -35,19 +40,20 @@ public final class TestHeaderStories ext
private HWPFDocument unicode;
private HWPFDocument withFields;
 
-   @Override
-protected void setUp() {
+   @Before
+public void setUp() {
 
-   none = HWPFTestDataSamples.openSampleFile("NoHeadFoot.doc");
-   header = HWPFTestDataSamples.openSampleFile("ThreeColHead.doc");
-   footer = HWPFTestDataSamples.openSampleFile("ThreeColFoot.doc");
-   headerFooter = 
HWPFTestDataSamples.openSampleFile("SimpleHeadThreeColFoot.doc");
-   oddEven = 
HWPFTestDataSamples.openSampleFile("PageSpecificHeadFoot.doc");
-   diffFirst = 
HWPFTestDataSamples.openSampleFile("DiffFirstPageHeadFoot.doc");
-   unicode = 
HWPFTestDataSamples.openSampleFile("HeaderFooterUnicode.doc");
-   withFields = 
HWPFTestDataSamples.openSampleFile("HeaderWithMacros.doc");
+   none = openSampleFile("NoHeadFoot.doc");
+   header = openSampleFile("ThreeColHead.doc");
+   footer = openSampleFile("ThreeColFoot.doc");
+   headerFooter = openSampleFile("SimpleHeadThreeColFoot.doc");
+   oddEven = openSampleFile("PageSpecificHeadFoot.doc");
+   diffFirst = openSampleFile("DiffFirstPageHeadFoot.doc");
+   unicode = openSampleFile("HeaderFooterUnicode.doc");
+   withFields = openSampleFile("HeaderWithMacros.doc");
}
 
+   @Test
public void testNone() {
HeaderStories hs = new HeaderStories(none);
 
@@ -55,6 +61,7 @@ public final class TestHeaderStories ext
assertEquals(0, hs.getRange().text().length());
}
 
+   @Test
public void testHeader() {
HeaderStories hs = new HeaderStories(header);
 
@@ -99,6 +106,7 @@ public final class TestHeaderStories ext
assertEquals("", hs.getOddFooter());
}
 
+   @Test
public void testFooter() {
HeaderStories hs = new HeaderStories(footer);
 
@@ -111,6 +119,7 @@ public final class TestHeaderStories ext
assertEquals("Footer Left\tFooter Middle Footer Right\r\r", 
hs.getOddFooter());
}
 
+   @Test
public void testHeaderFooter() {
HeaderStories hs = new HeaderStories(headerFooter);
 
@@ -123,6 +132,7 @@ public final class TestHeaderStories ext
assertEquals("Footer Left\tFooter Middle Footer Right\r\r", 
hs.getOddFooter());
}
 
+   @Test
public void testOddEven() {
HeaderStories hs = new HeaderStories(oddEven);
 
@@ -145,6 +155,7 @@ public final class TestHeaderStories ext
assertEquals("Footer Left\tFooter Middle Footer Right\r\r", 
hs.getFooter(3));
}
 
+   @Test
public void testFirst() {
HeaderStories hs = new HeaderStories(diffFirst);
 
@@ -162,6 +173,7 @@ public final class TestHeaderStories ext
assertEquals("Footer Left\tFooter Middle Footer Right\r\r", 
hs.getFooter(3));
}
 
+   @Test
public void testUnicode() {
HeaderStories hs = new HeaderStories(unicode);
 
@@ -175,6 +187,7 @@ public final class TestHeaderStories ext
assertEquals("The footer, with Moli\u00e8re, has Unicode in 
it.\r\r", hs.getOddFooter());
}
 
+   @Test
public void testWithFields() {
HeaderStories hs = new HeaderStories(withFields);
assertFalse(hs.areFieldsStripped());

Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestLists.java

svn commit: r1872041 [2/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbedded.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbedded.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbedded.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbedded.java Fri Dec 27 
23:00:13 2019
@@ -15,26 +15,28 @@
See the License for the specific language governing permissions and
limitations under the License.
  */
-
+
 
 package org.apache.poi;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import org.apache.poi.ooxml.POIXMLDocument;
+import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
-import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.openxml4j.opc.PackagePart;
-
-import junit.framework.TestCase;
+import org.junit.Test;
 
 /**
- * Class to test that we handle embeded bits in
- *  OOXML files properly
+ * Class to test that we handle embeded bits in OOXML files properly
  */
-public class TestEmbedded extends TestCase
-{
+public class TestEmbedded {
+   @Test
public void testExcel() throws Exception {
POIXMLDocument doc = new XSSFWorkbook(
 
POIDataSamples.getSpreadSheetInstance().openResourceAsStream("ExcelWithAttachments.xlsm")
@@ -42,6 +44,7 @@ public class TestEmbedded extends TestCa
test(doc, 4);
}
 
+   @Test
public void testWord() throws Exception {
POIXMLDocument doc = new XWPFDocument(
 
POIDataSamples.getDocumentInstance().openResourceAsStream("WordWithAttachments.docx")
@@ -49,13 +52,14 @@ public class TestEmbedded extends TestCa
test(doc, 5);
}
 
+   @Test
public void testPowerPoint() throws Exception {
POIXMLDocument doc = new XSLFSlideShow(OPCPackage.open(
 
POIDataSamples.getSlideShowInstance().openResourceAsStream("PPTWithAttachments.pptm"))
 );
test(doc, 4);
}
-   
+
private void test(POIXMLDocument doc, int expectedCount) throws 
Exception {
assertNotNull(doc.getAllEmbeddedParts());
assertEquals(expectedCount, doc.getAllEmbeddedParts().size());
@@ -63,7 +67,7 @@ public class TestEmbedded extends TestCa
for(int i=0; i 0);
}

Modified: 
poi/trunk/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java
 (original)
+++ 
poi/trunk/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java
 Fri Dec 27 23:00:13 2019
@@ -17,20 +17,23 @@
 package org.apache.poi;
 
 import static org.apache.poi.POITestCase.assertContains;
-
-import junit.framework.TestCase;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import org.apache.poi.ooxml.extractor.POIXMLPropertiesTextExtractor;
-import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.ooxml.util.PackageHelper;
+import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.junit.Test;
 
-public final class TestXMLPropertiesTextExtractor extends TestCase {
+public final class TestXMLPropertiesTextExtractor {
 private static final POIDataSamples _ssSamples = 
POIDataSamples.getSpreadSheetInstance();
 private static final POIDataSamples _slSamples = 
POIDataSamples.getSlideShowInstance();
 
+   @Test
public void testGetFromMainExtractor() throws Exception {
OPCPackage pkg = 
PackageHelper.open(_ssSamples.openResourceAsStream("ExcelWithAttachments.xlsm"));
 
@@ -49,11 +52,12 @@ public final class TestXMLPropertiesText
 
assertContains(text, "LastModifiedBy = Yury Batrakov");
assertContains(cText, "LastModifiedBy = Yury Batrakov");
-   
+
textExt.close();
ext.close();
}
 
+   @Test
public void testCore() throws Exception {
OPCPackage pkg = 

svn commit: r1872041 [8/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestAutoFilterInfoRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestAutoFilterInfoRecord.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestAutoFilterInfoRecord.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestAutoFilterInfoRecord.java
 Fri Dec 27 23:00:13 2019
@@ -18,19 +18,19 @@
 package org.apache.poi.hssf.record;
 
 import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
 
-import junit.framework.TestCase;
+import org.junit.Test;
 
 /**
  * Tests the AutoFilterInfoRecord class.
- *
- * @author Yegor Kozlov
  */
-public final class TestAutoFilterInfoRecord extends TestCase {
+public final class TestAutoFilterInfoRecord {
 private final byte[] data = new byte[] {
 0x05, 0x00
 };
 
+@Test
 public void testRead() {
 
 AutoFilterInfoRecord record = new 
AutoFilterInfoRecord(TestcaseRecordInputStream.create(AutoFilterInfoRecord.sid, 
data));
@@ -42,6 +42,7 @@ public final class TestAutoFilterInfoRec
 assertEquals(3, record.getNumEntries());
 }
 
+@Test
 public void testWrite() {
 AutoFilterInfoRecord record = new AutoFilterInfoRecord();
 record.setNumEntries((short)3);
@@ -52,6 +53,7 @@ public final class TestAutoFilterInfoRec
 assertEquals(3, record.getNumEntries());
 }
 
+@Test
 public void testClone()
 {
 AutoFilterInfoRecord record = new AutoFilterInfoRecord();

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestBoolErrRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestBoolErrRecord.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestBoolErrRecord.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestBoolErrRecord.java 
Fri Dec 27 23:00:13 2019
@@ -18,16 +18,19 @@
 package org.apache.poi.hssf.record;
 
 import static org.junit.Assert.assertArrayEquals;
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
-import org.apache.poi.hssf.record.RecordInputStream.LeftoverDataException;
 import org.apache.poi.util.HexRead;
+import org.junit.Test;
+
 /**
  * Tests for {@link BoolErrRecord}
  */
-public final class TestBoolErrRecord extends TestCase {
+public final class TestBoolErrRecord {
 
+   @Test
public void testError() {
byte[] data = HexRead.readFromString(
"00 00 00 00 0F 00 " + // row, col, xfIndex
@@ -38,18 +41,19 @@ public final class TestBoolErrRecord ext
BoolErrRecord ber = new BoolErrRecord(in);
assertTrue(ber.isError());
assertEquals(7, ber.getErrorValue());
-   
+

TestcaseRecordInputStream.confirmRecordEncoding(BoolErrRecord.sid, data, 
ber.serialize());
}
 
/**
-* Bugzilla 47479 was due to an apparent error in OOO which (as of 
version 3.0.1) 
+* Bugzilla 47479 was due to an apparent error in OOO which (as of 
version 3.0.1)
 * writes the value field of BOOLERR records as 2 bytes instead 
of 1.
-* Coincidentally, the extra byte written is zero, which is exactly the 
value 
+* Coincidentally, the extra byte written is zero, which is exactly the 
value
 * required by the isError field.  This probably why Excel seems 
to have
 * no problem.  OOO does not have the same bug for error values (which 
wouldn't
-* work by the same coincidence). 
+* work by the same coincidence).
 */
+   @Test
public void testOooBadFormat_bug47479() {
byte[] data = HexRead.readFromString(
"05 02 09 00 " + // sid, size
@@ -59,19 +63,11 @@ public final class TestBoolErrRecord ext
 
RecordInputStream in = TestcaseRecordInputStream.create(data);
BoolErrRecord ber = new BoolErrRecord(in);
-   boolean hasMore;
-   try {
-   hasMore = in.hasNextRecord();
-   } catch (LeftoverDataException e) {
-   if ("Initialisation of record 0x205 left 1 bytes 
remaining still to be read.".equals(e.getMessage())) {
-   throw new AssertionFailedError("Identified bug 
47479");
-   }
-   throw e;
-   }
+   boolean hasMore = in.hasNextRecord();
assertFalse(hasMore);
  

svn commit: r1872041 [21/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java Fri 
Dec 27 23:00:13 2019
@@ -32,11 +32,9 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
-import java.util.List;
 import java.util.Locale;
 import java.util.TimeZone;
 
@@ -46,13 +44,13 @@ import org.apache.poi.ss.ITestDataProvid
 import org.apache.poi.ss.SpreadsheetVersion;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.util.LocaleUtil;
-import org.junit.After;
 import org.junit.Test;
 
 /**
  * Common superclass for testing implementations of
  *  {@link org.apache.poi.ss.usermodel.Cell}
  */
+@SuppressWarnings("deprecation")
 public abstract class BaseTestCell {
 
 protected final ITestDataProvider _testDataProvider;
@@ -66,82 +64,81 @@ public abstract class BaseTestCell {
 
 @Test
 public void testSetValues() throws Exception {
-Workbook book = _testDataProvider.createWorkbook();
-Sheet sheet = book.createSheet("test");
-Row row = sheet.createRow(0);
-
-CreationHelper factory = book.getCreationHelper();
-Cell cell = row.createCell(0);
-
-cell.setCellValue(1.2);
-assertEquals(1.2, cell.getNumericCellValue(), 0.0001);
-assertEquals(CellType.NUMERIC, cell.getCellType());
-assertProhibitedValueAccess(cell, CellType.BOOLEAN, CellType.STRING,
-CellType.FORMULA, CellType.ERROR);
-
-cell.setCellValue(false);
-assertFalse(cell.getBooleanCellValue());
-assertEquals(CellType.BOOLEAN, cell.getCellType());
-cell.setCellValue(true);
-assertTrue(cell.getBooleanCellValue());
-assertProhibitedValueAccess(cell, CellType.NUMERIC, CellType.STRING, 
CellType.BOOLEAN,
-CellType.FORMULA, CellType.ERROR);
+try (Workbook book = _testDataProvider.createWorkbook()) {
+Sheet sheet = book.createSheet("test");
+Row row = sheet.createRow(0);
+
+CreationHelper factory = book.getCreationHelper();
+Cell cell = row.createCell(0);
+
+cell.setCellValue(1.2);
+assertEquals(1.2, cell.getNumericCellValue(), 0.0001);
+assertEquals(CellType.NUMERIC, cell.getCellType());
+assertProhibitedValueAccess(cell, CellType.BOOLEAN, 
CellType.STRING,
+CellType.FORMULA, CellType.ERROR);
 
-cell.setCellValue(factory.createRichTextString("Foo"));
-assertEquals("Foo", cell.getRichStringCellValue().getString());
-assertEquals("Foo", cell.getStringCellValue());
-assertEquals(CellType.STRING, cell.getCellType());
-assertProhibitedValueAccess(cell, CellType.NUMERIC, CellType.BOOLEAN,
-CellType.FORMULA, CellType.ERROR);
-
-cell.setCellValue("345");
-assertEquals("345", cell.getRichStringCellValue().getString());
-assertEquals("345", cell.getStringCellValue());
-assertEquals(CellType.STRING, cell.getCellType());
-assertProhibitedValueAccess(cell, CellType.NUMERIC, CellType.BOOLEAN,
-CellType.FORMULA, CellType.ERROR);
-
-Calendar c = LocaleUtil.getLocaleCalendar();
-c.setTimeInMillis(123456789);
-cell.setCellValue(c.getTime());
-assertEquals(c.getTime().getTime(), cell.getDateCellValue().getTime());
-assertEquals(CellType.NUMERIC, cell.getCellType());
-assertProhibitedValueAccess(cell, CellType.BOOLEAN, CellType.STRING,
-CellType.FORMULA, CellType.ERROR);
-
-cell.setCellValue(c);
-assertEquals(c.getTime().getTime(), cell.getDateCellValue().getTime());
-assertEquals(CellType.NUMERIC, cell.getCellType());
-assertProhibitedValueAccess(cell, CellType.BOOLEAN, CellType.STRING,
-CellType.FORMULA, CellType.ERROR);
-
-cell.setCellErrorValue(FormulaError.NA.getCode());
-assertEquals(FormulaError.NA.getCode(), cell.getErrorCellValue());
-assertEquals(CellType.ERROR, cell.getCellType());
-assertProhibitedValueAccess(cell, CellType.NUMERIC, CellType.BOOLEAN,
-CellType.FORMULA, CellType.STRING);
-
-LocalDateTime ldt = DateUtil.toLocalDateTime(c);
-cell.setCellValue(ldt);
-assertEquals(ldt, cell.getLocalDateTimeCellValue());
-assertEquals(CellType.NUMERIC, cell.getCellType());
-

svn commit: r1872041 [20/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCalendarFieldFunction.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCalendarFieldFunction.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCalendarFieldFunction.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCalendarFieldFunction.java
 Fri Dec 27 23:00:13 2019
@@ -19,7 +19,6 @@ package org.apache.poi.ss.formula.functi
 
 import static org.junit.Assert.assertEquals;
 
-import junit.framework.AssertionFailedError;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -109,9 +108,7 @@ public final class TestCalendarFieldFunc
 cell11.setCellFormula(formulaText);
 evaluator.clearAllCachedResultValues();
 CellValue cv = evaluator.evaluate(cell11);
-if (cv.getCellType() != CellType.NUMERIC) {
-throw new AssertionFailedError("Wrong result type: " + 
cv.formatAsString());
-}
+assertEquals("Wrong result type", CellType.NUMERIC, cv.getCellType());
 double actualValue = cv.getNumberValue();
 assertEquals(expectedResult, actualValue, 0);
 }

Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java 
Fri Dec 27 23:00:13 2019
@@ -22,7 +22,6 @@ import static org.junit.Assert.assertFal
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import junit.framework.AssertionFailedError;
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
@@ -152,9 +151,7 @@ public final class TestCountFuncs {
assertNotNull(mp);
StringEval seA = new StringEval("aa"); // this should not match 
the criteria '<>aa'
StringEval seB = new StringEval("bb"); // this should match
-   if (mp.matches(seA) && !mp.matches(seB)) {
-   throw new AssertionFailedError("Identified bug 46647");
-   }
+   assertFalse("Identified bug 46647", mp.matches(seA) && 
!mp.matches(seB));
assertFalse(mp.matches(seA));
assertTrue(mp.matches(seB));
 
@@ -280,16 +277,19 @@ public final class TestCountFuncs {
 
I_MatchPredicate mp;
mp = Countif.createCriteriaPredicate(ev, 9, srcColIx);
+   assertNotNull(mp);
confirmPredicate(true, mp, srcColIx);
confirmPredicate(false, mp, "abc");
confirmPredicate(false, mp, ErrorEval.DIV_ZERO);
 
mp = Countif.createCriteriaPredicate(ev, 10, srcColIx);
+   assertNotNull(mp);
confirmPredicate(false, mp, srcColIx);
confirmPredicate(true, mp, "abc");
confirmPredicate(false, mp, ErrorEval.DIV_ZERO);
 
mp = Countif.createCriteriaPredicate(ev, 11, srcColIx);
+   assertNotNull(mp);
confirmPredicate(false, mp, srcColIx);
confirmPredicate(false, mp, "abc");
confirmPredicate(true, mp, ErrorEval.DIV_ZERO);
@@ -298,6 +298,7 @@ public final class TestCountFuncs {
// tricky: indexing outside of A10:A12
// even this #VALUE! error gets used by COUNTIF as valid 
criteria
mp = Countif.createCriteriaPredicate(ev, 12, srcColIx);
+   assertNotNull(mp);
confirmPredicate(false, mp, srcColIx);
confirmPredicate(false, mp, "abc");
confirmPredicate(false, mp, ErrorEval.DIV_ZERO);
@@ -396,7 +397,7 @@ public final class TestCountFuncs {
 *  and NEQ cases
 */
@Test
-   public void testCountifBug51498() throws Exception {
+   public void testCountifBug51498() {
final int REF_COL = 4;
final int EVAL_COL = 3;
 
@@ -588,9 +589,6 @@ public final class TestCountFuncs {
}
}
 
-   if (failureCount > 0) {
-   throw new AssertionFailedError(failureCount + " " + 
functionName
-   + " evaluations failed. See stderr for 
more details");
-   }
+   

svn commit: r1872041 [15/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFClientAnchor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFClientAnchor.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFClientAnchor.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFClientAnchor.java 
Fri Dec 27 23:00:13 2019
@@ -17,46 +17,48 @@
 
 package org.apache.poi.hssf.usermodel;
 
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
 import org.apache.poi.ddf.EscherClientAnchorRecord;
 import org.apache.poi.hssf.model.ConvertAnchor;
+import org.junit.Test;
 
 /**
  * Various tests for HSSFClientAnchor.
- *
- * @author Glen Stampoultzis (glens at apache.org)
- * @author Yegor Kozlov (yegor at apache.org)
  */
-public final class TestHSSFClientAnchor extends TestCase {
-public void testGetAnchorHeightInPoints() {
-HSSFWorkbook wb = new HSSFWorkbook();
-HSSFSheet sheet = wb.createSheet("test");
-HSSFClientAnchor a = new 
HSSFClientAnchor(0,0,1023,255,(short)0,0,(short)0,0);
-float p = a.getAnchorHeightInPoints(sheet);
-assertEquals(12.7,p,0.001);
-
-sheet.createRow(0).setHeightInPoints(14);
-a = new HSSFClientAnchor(0,0,1023,255,(short)0,0,(short)0,0);
-p = a.getAnchorHeightInPoints(sheet);
-assertEquals(13.945,p,0.001);
-
-a = new HSSFClientAnchor(0,0,1023,127,(short)0,0,(short)0,0);
-p = a.getAnchorHeightInPoints(sheet);
-assertEquals(6.945,p,0.001);
-
-a = new HSSFClientAnchor(0,126,1023,127,(short)0,0,(short)0,0);
-p = a.getAnchorHeightInPoints(sheet);
-assertEquals(0.054,p,0.001);
-
-a = new HSSFClientAnchor(0,0,1023,0,(short)0,0,(short)0,1);
-p = a.getAnchorHeightInPoints(sheet);
-assertEquals(14.0,p,0.001);
-
-sheet.createRow(0).setHeightInPoints(12);
-a = new HSSFClientAnchor(0,127,1023,127,(short)0,0,(short)0,1);
-p = a.getAnchorHeightInPoints(sheet);
-assertEquals(12.372,p,0.001);
-
+public final class TestHSSFClientAnchor {
+@Test
+public void testGetAnchorHeightInPoints() throws IOException {
+try (HSSFWorkbook wb = new HSSFWorkbook()) {
+HSSFSheet sheet = wb.createSheet("test");
+HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 255, (short) 
0, 0, (short) 0, 0);
+float p = a.getAnchorHeightInPoints(sheet);
+assertEquals(12.7, p, 0.001);
+
+sheet.createRow(0).setHeightInPoints(14);
+a = new HSSFClientAnchor(0, 0, 1023, 255, (short) 0, 0, (short) 0, 
0);
+p = a.getAnchorHeightInPoints(sheet);
+assertEquals(13.945, p, 0.001);
+
+a = new HSSFClientAnchor(0, 0, 1023, 127, (short) 0, 0, (short) 0, 
0);
+p = a.getAnchorHeightInPoints(sheet);
+assertEquals(6.945, p, 0.001);
+
+a = new HSSFClientAnchor(0, 126, 1023, 127, (short) 0, 0, (short) 
0, 0);
+p = a.getAnchorHeightInPoints(sheet);
+assertEquals(0.054, p, 0.001);
+
+a = new HSSFClientAnchor(0, 0, 1023, 0, (short) 0, 0, (short) 0, 
1);
+p = a.getAnchorHeightInPoints(sheet);
+assertEquals(14.0, p, 0.001);
+
+sheet.createRow(0).setHeightInPoints(12);
+a = new HSSFClientAnchor(0, 127, 1023, 127, (short) 0, 0, (short) 
0, 1);
+p = a.getAnchorHeightInPoints(sheet);
+assertEquals(12.372, p, 0.001);
+}
 }
 
 /**
@@ -64,6 +66,7 @@ public final class TestHSSFClientAnchor
  * check that dx1, dx2, dy1 and dy2 are written "as is".
  * (Bug 42999 reported that dx1 and dx2 are swapped if dx1>dx2. It doesn't 
make sense for client anchors.)
  */
+@Test
 public void testConvertAnchor() {
 HSSFClientAnchor[] anchors = {
 new HSSFClientAnchor( 0 , 0 , 0 , 0 ,(short)0, 1,(short)1,3),
@@ -83,26 +86,29 @@ public final class TestHSSFClientAnchor
 }
 }
 
-public void testAnchorHeightInPoints(){
-HSSFWorkbook wb = new HSSFWorkbook();
-HSSFSheet sheet = wb.createSheet();
-
-HSSFClientAnchor[] anchor = {
-new HSSFClientAnchor( 0 , 0,0 , 0 ,(short)0, 1,(short)1, 3),
-new HSSFClientAnchor( 0 , 254 , 0 , 126 ,(short)0, 1,(short)1, 3),
-new HSSFClientAnchor( 0 , 128 , 0 , 128 ,(short)0, 1,(short)1, 3),
-new HSSFClientAnchor( 0 , 0 , 0 , 128 ,(short)0, 1,(short)1, 3),
-};
-float[] ref = {25.5f, 19.125f, 25.5f, 31.875f};
-for (int i = 0; i < anchor.length; i++) {
-float height = anchor[i].getAnchorHeightInPoints(sheet);
-assertEquals(ref[i], height, 0);
+@Test
+public void 

svn commit: r1872041 [23/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: poi/trunk/src/testcases/org/apache/poi/util/TestBitField.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/util/TestBitField.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/util/TestBitField.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/util/TestBitField.java Fri Dec 27 
23:00:13 2019
@@ -17,18 +17,20 @@
 
 package org.apache.poi.util;
 
-import junit.framework.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
 
 /**
  * Class to test BitField functionality
- *
- * @author Marc Johnson
- * @author Glen Stampoultzis (gst...@iprimus.com.au)
  */
-public final class TestBitField extends TestCase {
+public final class TestBitField {
 private static BitField bf_multi  = BitFieldFactory.getInstance(0x3F80);
 private static BitField bf_single = BitFieldFactory.getInstance(0x4000);
 
+@Test
 public void testGetValue() {
 assertEquals(bf_multi.getValue(-1), 127);
 assertEquals(bf_multi.getValue(0), 0);
@@ -36,6 +38,7 @@ public final class TestBitField extends
 assertEquals(bf_single.getValue(0), 0);
 }
 
+@Test
 public void testGetShortValue() {
 assertEquals(bf_multi.getShortValue(( short ) -1), ( short ) 127);
 assertEquals(bf_multi.getShortValue(( short ) 0), ( short ) 0);
@@ -43,6 +46,7 @@ public final class TestBitField extends
 assertEquals(bf_single.getShortValue(( short ) 0), ( short ) 0);
 }
 
+@Test
 public void testGetRawValue() {
 assertEquals(bf_multi.getRawValue(-1), 0x3F80);
 assertEquals(bf_multi.getRawValue(0), 0);
@@ -50,6 +54,7 @@ public final class TestBitField extends
 assertEquals(bf_single.getRawValue(0), 0);
 }
 
+@Test
 public void testGetShortRawValue() {
 assertEquals(bf_multi.getShortRawValue(( short ) -1),
  ( short ) 0x3F80);
@@ -59,6 +64,7 @@ public final class TestBitField extends
 assertEquals(bf_single.getShortRawValue(( short ) 0), ( short ) 0);
 }
 
+@Test
 public void testIsSet() {
 assertFalse(bf_multi.isSet(0));
 for (int j = 0x80; j <= 0x3F80; j += 0x80)
@@ -69,6 +75,7 @@ public final class TestBitField extends
 assertTrue(bf_single.isSet(0x4000));
 }
 
+@Test
 public void testIsAllSet() {
 for (int j = 0; j < 0x3F80; j += 0x80)
 {
@@ -79,6 +86,7 @@ public final class TestBitField extends
 assertTrue(bf_single.isAllSet(0x4000));
 }
 
+@Test
 public void testSetValue() {
 for (int j = 0; j < 128; j++)
 {
@@ -98,6 +106,7 @@ public final class TestBitField extends
 assertEquals(bf_single.setValue(0x4000, 2), 0);
 }
 
+@Test
 public void testSetShortValue() {
 for (int j = 0; j < 128; j++)
 {
@@ -125,6 +134,7 @@ public final class TestBitField extends
  ( short ) 0);
 }
 
+@Test
 public void testByte() {
 assertEquals(1, BitFieldFactory.getInstance(1).setByteBoolean(( byte ) 
0, true));
 assertEquals(2, BitFieldFactory.getInstance(2).setByteBoolean(( byte ) 
0, true));
@@ -151,26 +161,31 @@ public final class TestBitField extends
 assertFalse(BitFieldFactory.getInstance(0x40).isSet(clearedBit));
 }
 
+@Test
 public void testClear() {
 assertEquals(bf_multi.clear(-1), 0xC07F);
 assertEquals(bf_single.clear(-1), 0xBFFF);
 }
 
+@Test
 public void testClearShort() {
 assertEquals(bf_multi.clearShort(( short ) -1), ( short ) 0xC07F);
 assertEquals(bf_single.clearShort(( short ) -1), ( short ) 0xBFFF);
 }
 
+@Test
 public void testSet() {
 assertEquals(bf_multi.set(0), 0x3F80);
 assertEquals(bf_single.set(0), 0x4000);
 }
 
+@Test
 public void testSetShort() {
 assertEquals(bf_multi.setShort(( short ) 0), ( short ) 0x3F80);
 assertEquals(bf_single.setShort(( short ) 0), ( short ) 0x4000);
 }
 
+@Test
 public void testSetBoolean() {
 assertEquals(bf_multi.set(0), bf_multi.setBoolean(0, true));
 assertEquals(bf_single.set(0), bf_single.setBoolean(0, true));
@@ -178,6 +193,7 @@ public final class TestBitField extends
 assertEquals(bf_single.clear(-1), bf_single.setBoolean(-1, false));
 }
 
+@Test
 public void testSetShortBoolean() {
 assertEquals(bf_multi.setShort(( short ) 0),
  bf_multi.setShortBoolean(( short ) 0, true));
@@ -188,7 +204,8 @@ public final class TestBitField extends
 assertEquals(bf_single.clearShort(( short ) -1),
  bf_single.setShortBoolean(( short ) -1, false));
 }
-
+
+@Test
 public void testSetLargeValues() {

svn commit: r1872041 [12/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java 
Fri Dec 27 23:00:13 2019
@@ -17,27 +17,31 @@
 
 package org.apache.poi.hssf.record;
 
-import junit.framework.AssertionFailedError;
-import junit.framework.ComparisonFailure;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+import java.util.stream.Stream;
 
 import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFEvaluationWorkbook;
+import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.SpreadsheetVersion;
+import org.apache.poi.ss.formula.FormulaParser;
+import org.apache.poi.ss.formula.FormulaRenderer;
+import org.apache.poi.ss.formula.FormulaType;
+import org.apache.poi.ss.formula.SharedFormula;
 import org.apache.poi.ss.formula.ptg.Ptg;
 import org.apache.poi.ss.formula.ptg.RefPtg;
-import org.apache.poi.ss.formula.SharedFormula;
-import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.CellValue;
-import org.apache.poi.ss.formula.FormulaParser;
-import org.apache.poi.ss.formula.FormulaRenderer;
-import org.apache.poi.ss.formula.FormulaType;
-import org.apache.poi.ss.SpreadsheetVersion;
 import org.apache.poi.util.LittleEndianInput;
+import org.junit.Test;
 
-/**
- * @author Josh Micich
- */
-public final class TestSharedFormulaRecord extends TestCase {
+public final class TestSharedFormulaRecord {
 
 /**
  * A sample spreadsheet known to have one sheet with 4 shared formula 
ranges
@@ -71,6 +75,7 @@ public final class TestSharedFormulaReco
  * classes are preserved during this transformation, because Excel may not 
tolerate the
  * incorrect encoding.  The formula here is one such example (Excel 
displays #VALUE!).
  */
+@Test
 public void testConvertSharedFormulasOperandClasses_bug45123() {
 
 LittleEndianInput in = 
TestcaseRecordInputStream.createLittleEndian(SHARED_FORMULA_WITH_REF_ARRAYS_DATA);
@@ -82,25 +87,17 @@ public final class TestSharedFormulaReco
 
 RefPtg refPtg = (RefPtg) convertedFormula[1];
 assertEquals("$C101", refPtg.toFormulaString());
-if (refPtg.getPtgClass() == Ptg.CLASS_REF) {
-throw new AssertionFailedError("Identified bug 45123");
-}
-
+assertNotEquals("Identified bug 45123", Ptg.CLASS_REF, 
refPtg.getPtgClass());
 confirmOperandClasses(sharedFormula, convertedFormula);
 }
 
 private static void confirmOperandClasses(Ptg[] originalPtgs, Ptg[] 
convertedPtgs) {
-assertEquals(originalPtgs.length, convertedPtgs.length);
-for (int i = 0; i < convertedPtgs.length; i++) {
-Ptg originalPtg = originalPtgs[i];
-Ptg convertedPtg = convertedPtgs[i];
-if (originalPtg.getPtgClass() != convertedPtg.getPtgClass()) {
-throw new ComparisonFailure("Different operand class for 
token[" + i + "]",
-String.valueOf(originalPtg.getPtgClass()), 
String.valueOf(convertedPtg.getPtgClass()));
-}
-}
+int[] exp = 
Stream.of(originalPtgs).map(Ptg::getPtgClass).mapToInt(Byte::intValue).toArray();
+int[] act = 
Stream.of(convertedPtgs).map(Ptg::getPtgClass).mapToInt(Byte::intValue).toArray();
+assertArrayEquals("Different operand class", exp, act);
 }
 
+@Test
 public void testConvertSharedFormulas() {
 HSSFWorkbook wb = new HSSFWorkbook();
 HSSFEvaluationWorkbook fpb = HSSFEvaluationWorkbook.create(wb);
@@ -141,6 +138,7 @@ public final class TestSharedFormulaReco
 /**
  * Make sure that POI preserves {@link SharedFormulaRecord}s
  */
+@Test
 public void testPreserveOnReserialize() {
 HSSFWorkbook wb;
 HSSFSheet sheet;
@@ -168,10 +166,12 @@ public final class TestSharedFormulaReco
 cellB32769 = sheet.getRow(32768).getCell(1);
 cellC32769 = sheet.getRow(32768).getCell(2);
 assertEquals("B32770*2", cellB32769.getCellFormula());
+assertEquals("C32770*2", cellC32769.getCellFormula());
 confirmCellEvaluation(wb, cellB32769, 4);
 assertEquals(4, countSharedFormulas(sheet));
 }
 
+@Test
 public void testUnshareFormulaDueToChangeFormula() {
 

svn commit: r1872041 [9/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExtSSTRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExtSSTRecord.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExtSSTRecord.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestExtSSTRecord.java 
Fri Dec 27 23:00:13 2019
@@ -19,822 +19,134 @@
 
 package org.apache.poi.hssf.record;
 
-import junit.framework.TestCase;
-import org.apache.poi.hssf.record.common.UnicodeString;
-import org.apache.poi.util.HexRead;
+import static org.junit.Assert.assertEquals;
 
-/**
- * @author Yegor Kozlov
- */
-public final class TestExtSSTRecord extends TestCase {
+import java.io.IOException;
 
+import org.apache.poi.poifs.storage.RawDataUtil;
+import org.junit.Test;
 
-/**
- * hex dump from ISBN_UPD_PL_20100104_1525.xls atatched to Bugzilla 50867
- */
-private static final String data_50967 =
-// "Offset=0x0008BB19(572185) recno=159 sid=0x00FF 
size=0x201A(8218)\n" +
-"   FF 00 1A 20 08 00 1A" +
-"09 00 00 0C 00 00 00 6D 09 00 00 5F 00 00 00 B8" +
-"09 00 00 AA 00 00 00 BC 0A 00 00 AE 01 00 00 FA" +
-"0B 00 00 EC 02 00 00 C6 0D 00 00 B8 04 00 00 2E" +
-"0F 00 00 20 06 00 00 5C 11 00 00 4E 08 00 00 B0" +
-"12 00 00 A2 09 00 00 A4 13 00 00 96 0A 00 00 92" +
-"15 00 00 84 0C 00 00 0A 17 00 00 FC 0D 00 00 32" +
-"18 00 00 24 0F 00 00 84 19 00 00 76 10 00 00 9A" +
-"1A 00 00 8C 11 00 00 5E 1C 00 00 50 13 00 00 24" +
-"1D 00 00 16 14 00 00 56 1E 00 00 48 15 00 00 1C" +
-"1F 00 00 0E 16 00 00 DA 1F 00 00 CC 16 00 00 76" +
-"21 00 00 68 18 00 00 2E 23 00 00 20 1A 00 00 A0" +
-"24 00 00 92 1B 00 00 FA 25 00 00 EC 1C 00 00 BA" +
-"27 00 00 AC 1E 00 00 12 29 00 00 04 00 00 00 4E" +
-"2A 00 00 40 01 00 00 A0 2B 00 00 92 02 00 00 C8" +
-"2C 00 00 BA 03 00 00 62 2E 00 00 54 05 00 00 58" +
-"2F 00 00 4A 06 00 00 9A 30 00 00 8C 07 00 00 02" +
-"32 00 00 F4 08 00 00 36 33 00 00 28 0A 00 00 30" +
-"34 00 00 22 0B 00 00 FC 34 00 00 EE 0B 00 00 FE" +
-"35 00 00 F0 0C 00 00 26 37 00 00 18 0E 00 00 C6" +
-"38 00 00 B8 0F 00 00 FA 39 00 00 EC 10 00 00 8E" +
-"3B 00 00 80 12 00 00 2C 3D 00 00 1E 14 00 00 3C" +
-"3E 00 00 2E 15 00 00 80 3F 00 00 72 16 00 00 74" +
-"40 00 00 66 17 00 00 8A 41 00 00 7C 18 00 00 64" +
-"42 00 00 56 19 00 00 96 43 00 00 88 1A 00 00 82" +
-"44 00 00 74 1B 00 00 76 45 00 00 68 1C 00 00 80" +
-"46 00 00 72 1D 00 00 88 47 00 00 7A 1E 00 00 80" +
-"48 00 00 72 1F 00 00 66 49 00 00 34 00 00 00 76" +
-"4A 00 00 44 01 00 00 D0 4B 00 00 9E 02 00 00 F2" +
-"4C 00 00 C0 03 00 00 DA 4D 00 00 A8 04 00 00 B4" +
-"4F 00 00 82 06 00 00 12 51 00 00 E0 07 00 00 2A" +
-"52 00 00 F8 08 00 00 3C 53 00 00 0A 0A 00 00 6E" +
-"54 00 00 3C 0B 00 00 BC 55 00 00 8A 0C 00 00 14" +
-"57 00 00 E2 0D 00 00 3C 58 00 00 0A 0F 00 00 36" +
-"59 00 00 04 10 00 00 4A 5A 00 00 18 11 00 00 4A" +
-"5B 00 00 18 12 00 00 AC 5C 00 00 7A 13 00 00 C2" +
-"5D 00 00 90 14 00 00 2C 5F 00 00 FA 15 00 00 74" +
-"60 00 00 42 17 00 00 56 62 00 00 24 19 00 00 12" +
-"64 00 00 E0 1A 00 00 E8 65 00 00 B6 1C 00 00 CA" +
-"66 00 00 98 1D 00 00 14 68 00 00 E2 1E 00 00 56" +
-"69 00 00 04 00 00 00 EC 6A 00 00 9A 01 00 00 DC" +
-"6B 00 00 8A 02 00 00 EE 6C 00 00 9C 03 00 00 66" +
-"6E 00 00 14 05 00 00 A6 6F 00 00 54 06 00 00 92" +
-"70 00 00 40 07 00 00 E6 71 00 00 94 08 00 00 48" +
-"73 00 00 F6 09 00 00 AC 74 00 00 5A 0B 00 00 A2" +
-"75 00 00 50 0C 00 00 C4 76 00 00 72 0D 00 00 4E" +
-"78 00 00 FC 0E 00 00 14 7A 00 00 C2 10 00 00 0C" +
-"7B 00 00 BA 11 00 00 4E 7C 00 00 FC 12 00 00 5A" +
-"7D 00 00 08 14 00 00 C4 7E 00 00 72 15 00 00 BA" +
-"80 00 00 68 17 00 00 1C 82 00 00 CA 18 00 00 5E" +
-"83 00 00 0C 1A 00 00 BA 84 00 00 68 1B 00 00 E6" +
-"85 00 00 94 1C 00 00 46 87 00 00 F4 1D 00 00 94" +
-"88 00 00 

svn commit: r1872041 [3/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
 (original)
+++ 
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
 Fri Dec 27 23:00:13 2019
@@ -17,27 +17,34 @@
 
 package org.apache.poi.xssf.usermodel;
 
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.util.TreeMap;
+
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.xssf.model.StylesTable;
+import org.junit.Test;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRPrElt;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.STXstring;
 
-import java.io.IOException;
-import java.util.TreeMap;
-
 /**
  * Tests functionality of the XSSFRichTextRun object
- *
- * @author Yegor Kozlov
  */
-public final class TestXSSFRichTextString extends TestCase {
+public final class TestXSSFRichTextString {
 
+@Test
 public void testCreate() {
 XSSFRichTextString rt = new XSSFRichTextString("Apache POI");
 assertEquals("Apache POI", rt.getString());
@@ -56,6 +63,7 @@ public final class TestXSSFRichTextStrin
 assertFalse(rt.hasFormatting());
 }
 
+@Test
 public void testEmpty() {
 XSSFRichTextString rt = new XSSFRichTextString();
 assertEquals(0, rt.getIndexOfFormattingRun());
@@ -63,6 +71,7 @@ public final class TestXSSFRichTextStrin
 assertNull(rt.getFontAtIndex());
 }
 
+@Test
 public void testApplyFont() {
 XSSFRichTextString rt = new XSSFRichTextString();
 rt.append("123");
@@ -92,43 +101,46 @@ public final class TestXSSFRichTextStrin
 assertEquals(7, rt.getIndexOfFormattingRun(3));
 assertEquals(2, rt.getLengthOfFormattingRun(3));
 assertEquals("89", rt.getCTRst().getRArray(3).getT());
-
-
+
+
 assertEquals(-1, rt.getIndexOfFormattingRun());
 assertEquals(-1, rt.getLengthOfFormattingRun());
 assertNull(rt.getFontAtIndex());
 }
 
+@Test
 public void testApplyFontIndex() {
 XSSFRichTextString rt = new XSSFRichTextString("Apache POI");
 rt.applyFont(0, 10, (short)1);
-
+
 rt.applyFont((short)1);
-
+
 assertNotNull(rt.getFontAtIndex(0));
 }
 
+@Test
 public void testApplyFontWithStyles() {
 XSSFRichTextString rt = new XSSFRichTextString("Apache POI");
-
+
 StylesTable tbl = new StylesTable();
 rt.setStylesTableReference(tbl);
-
+
 try {
 rt.applyFont(0, 10, (short)1);
 fail("Fails without styles in the table");
 } catch (IndexOutOfBoundsException e) {
 // expected
 }
-
+
 tbl.putFont(new XSSFFont());
 rt.applyFont(0, 10, (short)1);
 rt.applyFont((short)1);
 }
 
+@Test
 public void testApplyFontException() {
 XSSFRichTextString rt = new XSSFRichTextString("Apache POI");
-
+
 rt.applyFont(0, 0, (short)1);
 
 try {
@@ -153,6 +165,7 @@ public final class TestXSSFRichTextStrin
 }
 }
 
+@Test
 public void testClearFormatting() {
 
 XSSFRichTextString rt = new XSSFRichTextString("Apache POI");
@@ -173,14 +186,15 @@ public final class TestXSSFRichTextStrin
 rt.applyFont(7, 10, font);
 assertEquals(2, rt.numFormattingRuns());
 assertTrue(rt.hasFormatting());
-
+
 rt.clearFormatting();
-
+
 assertEquals("Apache POI", rt.getString());
 assertEquals(0, rt.numFormattingRuns());
 assertFalse(rt.hasFormatting());
 }
 
+@Test
 public void testGetFonts() {
 
 XSSFRichTextString rt = new XSSFRichTextString();
@@ -208,6 +222,7 @@ public final class TestXSSFRichTextStrin
  * make sure we insert xml:space="preserve" attribute
  * if a string has leading or trailing white spaces
  */
+@Test
 public void testPreserveSpaces() {
 XSSFRichTextString rt = new XSSFRichTextString("Apache");
 

svn commit: r1872041 [13/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaFormatRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaFormatRecord.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaFormatRecord.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaFormatRecord.java
 Fri Dec 27 23:00:13 2019
@@ -18,19 +18,20 @@
 package org.apache.poi.hssf.record.chart;
 
 
-import org.apache.poi.hssf.record.TestcaseRecordInputStream;
+import static 
org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
-import junit.framework.TestCase;
+import org.apache.poi.hssf.record.TestcaseRecordInputStream;
+import org.junit.Test;
 
 /**
  * Tests the serialization and deserialization of the AreaFormatRecord
  * class works correctly.  Test data taken directly from a real
  * Excel file.
- *
-
- * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class TestAreaFormatRecord extends TestCase {
+public final class TestAreaFormatRecord {
 byte[] data = new byte[] {
 (byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0x00,// forecolor
 (byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,// backcolor
@@ -41,8 +42,8 @@ public final class TestAreaFormatRecord
 
 };
 
+@Test
 public void testLoad() {
-
 AreaFormatRecord record = new 
AreaFormatRecord(TestcaseRecordInputStream.create(0x100a, data));
 assertEquals( 0xFF, record.getForegroundColor());
 assertEquals( 0x00, record.getBackgroundColor());
@@ -57,8 +58,8 @@ public final class TestAreaFormatRecord
 assertEquals( 20, record.getRecordSize() );
 }
 
-public void testStore()
-{
+@Test
+public void testStore() {
 AreaFormatRecord record = new AreaFormatRecord();
 record.setForegroundColor( 0xFF );
 record.setBackgroundColor( 0x00 );
@@ -70,8 +71,6 @@ public final class TestAreaFormatRecord
 
 
 byte [] recordBytes = record.serialize();
-assertEquals(recordBytes.length - 4, data.length);
-for (int i = 0; i < data.length; i++)
-assertEquals("At offset " + i, data[i], recordBytes[i+4]);
+confirmRecordEncoding(AreaFormatRecord.sid, data, recordBytes);
 }
 }

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaRecord.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaRecord.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAreaRecord.java 
Fri Dec 27 23:00:13 2019
@@ -18,23 +18,25 @@
 package org.apache.poi.hssf.record.chart;
 
 
-import org.apache.poi.hssf.record.TestcaseRecordInputStream;
+import static 
org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
-import junit.framework.TestCase;
+import org.apache.poi.hssf.record.TestcaseRecordInputStream;
+import org.junit.Test;
 
 /**
  * Tests the serialization and deserialization of the AreaRecord
  * class works correctly.  Test data taken directly from a real
  * Excel file.
- *
- *
- * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class TestAreaRecord extends TestCase {
+public final class TestAreaRecord {
 byte[] data = new byte[] {
 (byte)0x02,(byte)0x00   // format flags
 };
 
+@Test
 public void testLoad() {
 
 AreaRecord record = new 
AreaRecord(TestcaseRecordInputStream.create(0x101A, data));
@@ -43,21 +45,17 @@ public final class TestAreaRecord extend
 assertTrue(record.isDisplayAsPercentage());
 assertFalse(record.isShadow());
 
-
 assertEquals( 6, record.getRecordSize() );
 }
 
-public void testStore()
-{
+@Test
+public void testStore() {
 AreaRecord record = new AreaRecord();
 record.setStacked( false );
 record.setDisplayAsPercentage( true );
 record.setShadow( false );
 
-
 byte [] recordBytes = record.serialize();
-assertEquals(recordBytes.length - 4, data.length);
-for (int i = 0; i < data.length; i++)
-assertEquals("At offset " + i, data[i], recordBytes[i+4]);
+confirmRecordEncoding(AreaRecord.sid, data, recordBytes);
 }
 }

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestAxisLineFormatRecord.java

svn commit: r1872041 [10/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java Fri 
Dec 27 23:00:13 2019
@@ -18,31 +18,35 @@
 package org.apache.poi.hssf.record;
 
 
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.apache.poi.util.HexRead;
+import org.junit.Test;
 
 /**
  * Tests the serialization and deserialization of the {@link FontRecord}
  * class works correctly.  Test data taken directly from a real Excel file.
  */
-public final class TestFontRecord extends TestCase {
+public final class TestFontRecord {
 
 private static final int SID = 0x31;
 private static final byte[] data = {
-0xC8-256, 00,   // font height = xc8
-00, 00, // attrs = 0
+0xC8-256, 0,   // font height = xc8
+0, 0, // attrs = 0
 0xFF-256, 0x7F, // colour palette = x7fff
 0x90-256, 0x01, // bold weight = x190
-00, 00,  // supersubscript
-00, 00,  // underline, family
-00, 00,  // charset, padding
-05, 00,  // name length, unicode flag
+0, 0,  // supersubscript
+0, 0,  // underline, family
+0, 0,  // charset, padding
+5, 0,  // name length, unicode flag
 0x41, 0x72, 0x69, 0x61, 0x6C, // Arial, as unicode
 
 };
 
+@Test
 public void testLoad() {
 
 FontRecord record = new 
FontRecord(TestcaseRecordInputStream.create(0x31, data));
@@ -63,6 +67,7 @@ public final class TestFontRecord extend
 assertEquals(21 + 4, record.getRecordSize());
 }
 
+@Test
 public void testStore() {
 //  .fontheight  = c8
 //  .attributes  = 0
@@ -94,6 +99,7 @@ public final class TestFontRecord extend
 TestcaseRecordInputStream.confirmRecordEncoding(0x31, data, 
recordBytes);
 }
 
+@Test
 public void testCloneOnto() {
 FontRecord base = new 
FontRecord(TestcaseRecordInputStream.create(0x31, data));
 
@@ -106,6 +112,7 @@ public final class TestFontRecord extend
 assertEquals("At offset " + i, data[i], recordBytes[i+4]);
 }
 
+@Test
 public void testSameProperties() {
 FontRecord f1 = new FontRecord(TestcaseRecordInputStream.create(0x31, 
data));
 FontRecord f2 = new FontRecord(TestcaseRecordInputStream.create(0x31, 
data));
@@ -128,6 +135,7 @@ public final class TestFontRecord extend
  * length is zero.  The OOO documentation seems to agree with this and POI 
had no test data
  * samples to say otherwise.
  */
+@Test
 public void testEmptyName_bug47250() {
 byte[] emptyNameData = HexRead.readFromString(
 "C8 00 00 00 FF 7F 90 01 00 00 00 00 00 00 "
@@ -137,9 +145,7 @@ public final class TestFontRecord extend
 
 RecordInputStream in = TestcaseRecordInputStream.create(SID, 
emptyNameData);
 FontRecord fr = new FontRecord(in);
-if (in.available() == 1) {
-throw new AssertionFailedError("Identified bug 47250");
-}
+assertNotEquals(1, in.available());
 assertEquals(0, in.available());
 
 assertEquals(0, fr.getFontName().length());

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java 
Fri Dec 27 23:00:13 2019
@@ -17,6 +17,10 @@
 
 package org.apache.poi.hssf.record;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import org.apache.poi.ss.formula.ptg.AttrPtg;
 import org.apache.poi.ss.formula.ptg.FuncVarPtg;
 import org.apache.poi.ss.formula.ptg.IntPtg;
@@ -24,17 +28,14 @@ import org.apache.poi.ss.formula.ptg.Ptg
 import org.apache.poi.ss.formula.ptg.RefPtg;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.FormulaError;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import org.junit.Test;
 
 /**
  * Tests for {@link FormulaRecord}
- *
- * 

svn commit: r1872041 [22/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java
 Fri Dec 27 23:00:13 2019
@@ -24,8 +24,8 @@ import static org.junit.Assert.assertNot
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
 
 import java.io.IOException;
 import java.util.Arrays;
@@ -40,9 +40,6 @@ import org.junit.Test;
 /**
  * Common superclass for testing usermodel API for array formulas.
  * Formula evaluation is not tested here.
- *
- * @author Yegor Kozlov
- * @author Josh Micich
  */
 public abstract class BaseTestSheetUpdateArrayFormulas {
 protected final ITestDataProvider _testDataProvider;
@@ -53,23 +50,22 @@ public abstract class BaseTestSheetUpdat
 
 @Test
 public final void testAutoCreateOtherCells() throws IOException {
-Workbook workbook = _testDataProvider.createWorkbook();
-Sheet sheet = workbook.createSheet("Sheet1");
+try (Workbook workbook = _testDataProvider.createWorkbook()) {
+Sheet sheet = workbook.createSheet("Sheet1");
 
-Row row1 = sheet.createRow(0);
-Cell cellA1 = row1.createCell(0);
-Cell cellB1 = row1.createCell(1);
-String formula = "42";
-sheet.setArrayFormula(formula, CellRangeAddress.valueOf("A1:B2"));
-
-assertEquals(formula, cellA1.getCellFormula());
-assertEquals(formula, cellB1.getCellFormula());
-Row row2 = sheet.getRow(1);
-assertNotNull(row2);
-assertEquals(formula, row2.getCell(0).getCellFormula());
-assertEquals(formula, row2.getCell(1).getCellFormula());
-
-workbook.close();
+Row row1 = sheet.createRow(0);
+Cell cellA1 = row1.createCell(0);
+Cell cellB1 = row1.createCell(1);
+String formula = "42";
+sheet.setArrayFormula(formula, CellRangeAddress.valueOf("A1:B2"));
+
+assertEquals(formula, cellA1.getCellFormula());
+assertEquals(formula, cellB1.getCellFormula());
+Row row2 = sheet.getRow(1);
+assertNotNull(row2);
+assertEquals(formula, row2.getCell(0).getCellFormula());
+assertEquals(formula, row2.getCell(1).getCellFormula());
+}
 }
 
 /**
@@ -77,36 +73,33 @@ public abstract class BaseTestSheetUpdat
  */
 @Test
 public final void testSetArrayFormula_singleCell() throws IOException {
-Cell[] cells;
+try (Workbook workbook = _testDataProvider.createWorkbook()) {
+Sheet sheet = workbook.createSheet();
+Cell cell = sheet.createRow(0).createCell(0);
+assertFalse(cell.isPartOfArrayFormulaGroup());
+try {
+cell.getArrayFormulaRange();
+fail("expected exception");
+} catch (IllegalStateException e) {
+assertEquals("Cell Sheet0!A1 is not part of an array 
formula.", e.getMessage());
+}
+
+// row 3 does not yet exist
+assertNull(sheet.getRow(2));
+CellRangeAddress range = new CellRangeAddress(2, 2, 2, 2);
+Cell[] cells = sheet.setArrayFormula("SUM(C11:C12*D11:D12)", 
range).getFlattenedCells();
+assertEquals(1, cells.length);
+// sheet.setArrayFormula creates rows and cells for the designated 
range
+assertNotNull(sheet.getRow(2));
+cell = sheet.getRow(2).getCell(2);
+assertNotNull(cell);
 
-Workbook workbook = _testDataProvider.createWorkbook();
-Sheet sheet = workbook.createSheet();
-Cell cell = sheet.createRow(0).createCell(0);
-assertFalse(cell.isPartOfArrayFormulaGroup());
-try {
-cell.getArrayFormulaRange();
-fail("expected exception");
-} catch (IllegalStateException e){
-assertEquals("Cell Sheet0!A1 is not part of an array formula.", 
e.getMessage());
-}
-
-// row 3 does not yet exist
-assertNull(sheet.getRow(2));
-CellRangeAddress range = new CellRangeAddress(2, 2, 2, 2);
-cells = sheet.setArrayFormula("SUM(C11:C12*D11:D12)", 
range).getFlattenedCells();
-assertEquals(1, cells.length);
-// sheet.setArrayFormula creates rows and cells for the designated 
range
-assertNotNull(sheet.getRow(2));
-cell = 

svn commit: r1872041 [18/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSDocumentPath.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSDocumentPath.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSDocumentPath.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSDocumentPath.java
 Fri Dec 27 23:00:13 2019
@@ -17,19 +17,24 @@
 
 package org.apache.poi.poifs.filesystem;
 
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
 
 /**
  * Class to test POIFSDocumentPath functionality
- *
- * @author Marc Johnson
  */
-public final class TestPOIFSDocumentPath extends TestCase {
+public final class TestPOIFSDocumentPath {
 
 
 /**
  * Test default constructor
  */
+@Test
 public void testDefaultConstructor() {
 POIFSDocumentPath path = new POIFSDocumentPath();
 
@@ -39,36 +44,28 @@ public final class TestPOIFSDocumentPath
 /**
  * Test full path constructor
  */
+@Test
 public void testFullPathConstructor() {
-String[] components =
-{
-"foo", "bar", "foobar", "fubar"
-};
+String[] components = {"foo", "bar", "foobar", "fubar"};
 
-for (int j = 0; j < components.length; j++)
-{
+for (int j = 0; j < components.length; j++) {
 String[] params = new String[ j ];
 
 System.arraycopy(components, 0, params, 0, j);
 POIFSDocumentPath path = new POIFSDocumentPath(params);
 
 assertEquals(j, path.length());
-for (int k = 0; k < j; k++)
-{
+for (int k = 0; k < j; k++) {
 assertEquals(components[ k ], path.getComponent(k));
 }
-if (j == 0)
-{
+if (j == 0) {
 assertNull(path.getParent());
-}
-else
-{
+} else {
 POIFSDocumentPath parent = path.getParent();
 
 assertNotNull(parent);
 assertEquals(j - 1, parent.length());
-for (int k = 0; k < j - 1; k++)
-{
+for (int k = 0; k < j - 1; k++) {
 assertEquals(components[ k ], parent.getComponent(k));
 }
 }
@@ -76,227 +73,132 @@ public final class TestPOIFSDocumentPath
 
 // test weird variants
 assertEquals(0, new POIFSDocumentPath(null).length());
-try
-{
-new POIFSDocumentPath(new String[]
-{
-"fu", ""
-});
+try {
+new POIFSDocumentPath(new String[]{"fu", ""});
 fail("should have caught IllegalArgumentException");
-}
-catch (IllegalArgumentException ignored)
-{
-}
-try
-{
-new POIFSDocumentPath(new String[]
-{
-"fu", null
-});
+} catch (IllegalArgumentException ignored) { }
+try {
+new POIFSDocumentPath(new String[]{"fu", null});
 fail("should have caught IllegalArgumentException");
-}
-catch (IllegalArgumentException ignored)
-{
-}
+} catch (IllegalArgumentException ignored) { }
 }
 
 /**
  * Test relative path constructor
  */
+@Test
 public void testRelativePathConstructor() {
-String[] initialComponents =
-{
-"a", "b", "c"
-};
+String[] initialComponents = {"a", "b", "c"};
 
-for (int n = 0; n < initialComponents.length; n++)
-{
+for (int n = 0; n < initialComponents.length; n++) {
 String[] initialParams = new String[ n ];
 
 System.arraycopy(initialComponents, 0, initialParams, 0, n);
-POIFSDocumentPath base   =
-new POIFSDocumentPath(initialParams);
-String[]  components =
-{
-"foo", "bar", "foobar", "fubar"
-};
+POIFSDocumentPath base = new POIFSDocumentPath(initialParams);
+String[] components = {"foo", "bar", "foobar", "fubar"};
 
-for (int j = 0; j < components.length; j++)
-{
+for (int j = 0; j < components.length; j++) {
 String[] params = new String[ j ];
 
 System.arraycopy(components, 0, params, 0, j);
 POIFSDocumentPath path = new POIFSDocumentPath(base, params);
 
 assertEquals(j + n, path.length());
-for (int k = 

svn commit: r1872041 [16/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/ut

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java 
Fri Dec 27 23:00:13 2019
@@ -17,6 +17,8 @@
 
 package org.apache.poi.hssf.usermodel;
 
+import static org.apache.poi.hssf.HSSFTestDataSamples.writeOutAndReadBack;
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -27,6 +29,7 @@ import static org.junit.Assert.assertTru
 import static org.junit.Assert.fail;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.poi.ddf.EscherDgRecord;
@@ -35,27 +38,8 @@ import org.apache.poi.hssf.HSSFTestDataS
 import org.apache.poi.hssf.model.DrawingManager2;
 import org.apache.poi.hssf.model.InternalSheet;
 import org.apache.poi.hssf.model.InternalWorkbook;
-import org.apache.poi.hssf.record.AutoFilterInfoRecord;
-import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
-import org.apache.poi.hssf.record.DimensionsRecord;
-import org.apache.poi.hssf.record.FtCblsSubRecord;
-import org.apache.poi.hssf.record.GridsetRecord;
-import org.apache.poi.hssf.record.HCenterRecord;
-import org.apache.poi.hssf.record.LbsDataSubRecord;
-import org.apache.poi.hssf.record.NameRecord;
-import org.apache.poi.hssf.record.ObjRecord;
-import org.apache.poi.hssf.record.ObjectProtectRecord;
-import org.apache.poi.hssf.record.PasswordRecord;
-import org.apache.poi.hssf.record.ProtectRecord;
-import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.SCLRecord;
-import org.apache.poi.hssf.record.ScenarioProtectRecord;
-import org.apache.poi.hssf.record.SubRecord;
-import org.apache.poi.hssf.record.VCenterRecord;
-import org.apache.poi.hssf.record.WSBoolRecord;
-import org.apache.poi.hssf.record.WindowTwoRecord;
+import org.apache.poi.hssf.record.*;
 import org.apache.poi.hssf.record.aggregates.WorksheetProtectionBlock;
-import org.apache.poi.hssf.usermodel.RecordInspector.RecordCollector;
 import org.apache.poi.ss.formula.ptg.Area3DPtg;
 import org.apache.poi.ss.formula.ptg.Ptg;
 import org.apache.poi.ss.usermodel.AutoFilter;
@@ -71,10 +55,6 @@ import org.junit.Test;
 
 /**
  * Tests HSSFSheet.  This test case is very incomplete at the moment.
- *
- *
- * @author Glen Stampoultzis (glens at apache.org)
- * @author Andrew C. Oliver (acoliver apache org)
  */
 public final class TestHSSFSheet extends BaseTestSheet {
 
@@ -88,14 +68,14 @@ public final class TestHSSFSheet extends
  */
 @Test
 public void setRepeatingRowsAndColumnsBug29747() throws IOException {
-HSSFWorkbook wb = new HSSFWorkbook();
-wb.createSheet();
-wb.createSheet();
-HSSFSheet sheet2 = wb.createSheet();
-sheet2.setRepeatingRows(CellRangeAddress.valueOf("1:2"));
-NameRecord nameRecord = wb.getWorkbook().getNameRecord(0);
-assertEquals(3, nameRecord.getSheetNumber());
-wb.close();
+try (HSSFWorkbook wb = new HSSFWorkbook()) {
+wb.createSheet();
+wb.createSheet();
+HSSFSheet sheet2 = wb.createSheet();
+sheet2.setRepeatingRows(CellRangeAddress.valueOf("1:2"));
+NameRecord nameRecord = wb.getWorkbook().getNameRecord(0);
+assertEquals(3, nameRecord.getSheetNumber());
+}
 }
 
 @Test
@@ -108,13 +88,13 @@ public final class TestHSSFSheet extends
  */
 @Test
 public void backupRecord() throws IOException {
-HSSFWorkbook wb = new HSSFWorkbook();
-HSSFSheet s = wb.createSheet();
-GridsetRecord gridsetRec = s.getSheet().getGridsetRecord();
-assertTrue(gridsetRec.getGridset());
-s.setGridsPrinted(true);
-assertFalse(gridsetRec.getGridset());
-wb.close();
+try (HSSFWorkbook wb = new HSSFWorkbook()) {
+HSSFSheet s = wb.createSheet();
+GridsetRecord gridsetRec = s.getSheet().getGridsetRecord();
+assertTrue(gridsetRec.getGridset());
+s.setGridsPrinted(true);
+assertFalse(gridsetRec.getGridset());
+}
 }
 
 /**
@@ -122,17 +102,16 @@ public final class TestHSSFSheet extends
  */
 @Test
 public void verticallyCenter() throws IOException {
-HSSFWorkbook wb = new HSSFWorkbook();
-HSSFSheet s = wb.createSheet();
-VCenterRecord record = s.getSheet().getPageSettings().getVCenter();
-
-assertFalse(record.getVCenter());
-assertFalse(s.getVerticallyCenter());
-s.setVerticallyCenter(true);
-

svn commit: r1872041 [4/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFLZW.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFLZW.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFLZW.java 
(original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFLZW.java Fri 
Dec 27 23:00:13 2019
@@ -17,12 +17,15 @@
 
 package org.apache.poi.hdgf;
 
+import static org.junit.Assert.assertEquals;
+
 import java.io.ByteArrayInputStream;
 
-import junit.framework.TestCase;
+import org.junit.Ignore;
+import org.junit.Test;
 
-public final class TestHDGFLZW extends TestCase {
-   public static final byte[] testTrailerComp = new byte[] {
+public final class TestHDGFLZW {
+   public static final byte[] testTrailerComp = {
123,  // *mask bit*
-60, 2,
-21, -16, // 3 @ 4093
@@ -38,7 +41,7 @@ public final class TestHDGFLZW extends T
21,   // *mask bit* 1,3,5
9,
-21, -16, // 3 @ 4093
-   103, 
+   103,
-21, -16, // 3 @ 4093
34,
-36, -1,  // 18 @ 4078
@@ -72,7 +75,7 @@ public final class TestHDGFLZW extends T
1, 67, 85, 1, 81, -127, 0, -41, 0, 14, 6, 4, 17, 63, -63, 17, 
68,
85, -65, 1, 30, -120, 0, 0, 42, 79, 18, 68, 126, -21, -16, -76, 
69,
85, 1, 102, -119, 72, 37, 0, 97, 33 };
-   public static final byte[] testTrailerDecomp = new byte[] {
+   public static final byte[] testTrailerDecomp = {
-60, 2, 0, 0, 0, 1, 0, 0, -72, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0,
0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0, 
0,
0, 9, 0, 0, 0, 103, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0,
@@ -108,6 +111,7 @@ public final class TestHDGFLZW extends T
0, 0, 42, 1, 0, 0, 84, 0, 0, 0, 0, 0
};
 
+   @Test
public void testFromToInt() {
byte b255 = -1;
assertEquals(255, HDGFLZW.fromByte(b255));
@@ -135,6 +139,7 @@ public final class TestHDGFLZW extends T
assertEquals(-128, HDGFLZW.fromInt( 128 ));
}
 
+   @Test
public void testCounts() throws Exception {
assertEquals(339, testTrailerComp.length);
assertEquals(632, testTrailerDecomp.length);
@@ -155,6 +160,7 @@ public final class TestHDGFLZW extends T
 */
}
 
+   @Test
public void testDecompress() throws Exception {
assertEquals(339, testTrailerComp.length);
assertEquals(632, testTrailerDecomp.length);
@@ -176,6 +182,7 @@ public final class TestHDGFLZW extends T
 * Uses a part short enough that we agree with visio
 *  on the best way to compress it
 */
+   @Test
public void testCompressMini() throws Exception {
   // first 11 bytes compressed = 12 bytes uncompressed
   byte[] sourceComp = new byte[11];
@@ -186,7 +193,7 @@ public final class TestHDGFLZW extends T
// Compress it using our engine
HDGFLZW lzw = new HDGFLZW();
byte[] comp = lzw.compress(new 
ByteArrayInputStream(sourceDecomp));
-   
+
// Now decompress it again
byte[] decomp = lzw.decompress(new ByteArrayInputStream(comp));
 
@@ -206,6 +213,7 @@ public final class TestHDGFLZW extends T
/**
 * Tests that we can do several mask pages
 */
+   @Test
public void testCompressMidi() throws Exception {
   // First 12 -> 11
   // Next 32 -> 13
@@ -217,11 +225,11 @@ public final class TestHDGFLZW extends T
   // Compress it using our engine
   HDGFLZW lzw = new HDGFLZW();
   byte[] comp = lzw.compress(new ByteArrayInputStream(sourceDecomp));
-  
+
   // We should be 3 characters bigger, as
   //  we split one compressed bit into two
   assertEquals(27, comp.length);
-  
+
   // Now decompress it again
   byte[] decomp = lzw.decompress(new ByteArrayInputStream(comp));
 
@@ -237,28 +245,30 @@ public final class TestHDGFLZW extends T
 * Gets 160 bytes through then starts going wrong...
 * TODO Fix this
 */
-   public void DISABLEDtestCompressFull() throws Exception {
+   @Test
+   @Ignore
+   public void testCompressFull() throws Exception {
   assertEquals(339, testTrailerComp.length);
   assertEquals(632, testTrailerDecomp.length);
 
   // Compress it using our engine
   HDGFLZW lzw = new HDGFLZW();
   byte[] comp = lzw.compress(new ByteArrayInputStream(testTrailerDecomp));
-  
+
   // Now decompress it again
   byte[] decomp = lzw.decompress(new ByteArrayInputStream(comp));
 
 //  for(int i=0; 

svn commit: r1872041 [5/23] - in /poi/trunk/src: excelant/testcases/org/apache/poi/ss/examples/formula/ excelant/testcases/org/apache/poi/ss/excelant/ excelant/testcases/org/apache/poi/ss/excelant/uti

2019-12-27 Thread kiwiwings
Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/Test7BitCodepage.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/Test7BitCodepage.java?rev=1872041=1872040=1872041=diff
==
--- 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/Test7BitCodepage.java 
(original)
+++ 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/Test7BitCodepage.java 
Fri Dec 27 23:00:13 2019
@@ -17,28 +17,31 @@
 
 package org.apache.poi.hsmf;
 
-import java.io.IOException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 
-import junit.framework.TestCase;
+import java.io.IOException;
 
 import org.apache.poi.POIDataSamples;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Tests to verify if code page for general properties like subject,
  * text body and html body is evaluated correctly.
  */
-public final class Test7BitCodepage extends TestCase {
-   private final MAPIMessage ascii_cp1251_lcid1049;
-   private final MAPIMessage ascii_utf_8_cp1252_lcid1031;
-   private final MAPIMessage ascii_utf_8_cp1252_lcid1031_html;
-   private final MAPIMessage htmlbodybinary_cp1251;
-   private final MAPIMessage htmlbodybinary_utf_8;
+public final class Test7BitCodepage {
+   private MAPIMessage ascii_cp1251_lcid1049;
+   private MAPIMessage ascii_utf_8_cp1252_lcid1031;
+   private MAPIMessage ascii_utf_8_cp1252_lcid1031_html;
+   private MAPIMessage htmlbodybinary_cp1251;
+   private MAPIMessage htmlbodybinary_utf_8;
 
/**
 * Initialize this test, load up the messages.
-* @throws Exception
 */
-   public Test7BitCodepage() throws IOException {
+   @Before
+   public void setup() throws IOException {
POIDataSamples samples = POIDataSamples.getHSMFInstance();
ascii_cp1251_lcid1049 = new 
MAPIMessage(samples.openResourceAsStream("ASCII_CP1251_LCID1049.msg"));
ascii_utf_8_cp1252_lcid1031  = new 
MAPIMessage(samples.openResourceAsStream("ASCII_UTF-8_CP1252_LCID1031.msg"));
@@ -50,6 +53,7 @@ public final class Test7BitCodepage exte
/**
 * Evaluate encoding and check if the subject, text body and html body is 
decoded correctly.
 */
+   @Test
public void test7BitEncoding() throws Exception {
ascii_cp1251_lcid1049.guess7BitEncoding();
ascii_cp1251_lcid1049.setReturnNullOnMissingChunk(true);
@@ -61,23 +65,23 @@ public final class Test7BitCodepage exte
htmlbodybinary_cp1251.setReturnNullOnMissingChunk(true);
htmlbodybinary_utf_8.guess7BitEncoding();
htmlbodybinary_utf_8.setReturnNullOnMissingChunk(true);
-   
+
assertEquals("Subject автоматически Subject", 
ascii_cp1251_lcid1049.getSubject());
assertEquals("Body автоматически Body", 
ascii_cp1251_lcid1049.getTextBody());
assertEquals("HTML 
автоматически", ascii_cp1251_lcid1049.getHtmlBody());
-  
+
assertEquals("Subject öäü Subject", 
ascii_utf_8_cp1252_lcid1031.getSubject());
assertEquals("Body öäü Body", 
ascii_utf_8_cp1252_lcid1031.getTextBody());
assertNull(ascii_utf_8_cp1252_lcid1031.getHtmlBody());
-   
+
assertEquals("Subject öäü Subject", 
ascii_utf_8_cp1252_lcid1031_html.getSubject());
assertEquals("Body öäü Body", 
ascii_utf_8_cp1252_lcid1031_html.getTextBody());
assertEquals("HTML öäü", 
ascii_utf_8_cp1252_lcid1031_html.getHtmlBody());
-   
+
assertEquals("Subject öäü Subject", 
htmlbodybinary_cp1251.getSubject());
assertNull(htmlbodybinary_cp1251.getTextBody());
assertEquals("HTML автоматически", 
htmlbodybinary_cp1251.getHtmlBody());
-   
+
assertEquals("Subject öäü Subject", 
htmlbodybinary_utf_8.getSubject());
assertNull(htmlbodybinary_utf_8.getTextBody());
assertEquals("HTML öäü", 
htmlbodybinary_utf_8.getHtmlBody());

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java?rev=1872041=1872040=1872041=diff
==
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java 
(original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java Fri 
Dec 27 23:00:13 2019
@@ -19,34 +19,38 @@ package org.apache.poi.hsmf;
 
 import static org.apache.poi.POITestCase.assertContains;
 import static org.apache.poi.POITestCase.assertStartsWith;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.IOException;
 
-import junit.framework.TestCase;
-
 import org.apache.poi.POIDataSamples;
 

svn commit: r1871944 - in /poi/trunk/src: java/org/apache/poi/hpsf/ClassID.java java/org/apache/poi/hpsf/ClassIDPredefined.java java/org/apache/poi/hssf/record/HyperlinkRecord.java testcases/org/apach

2019-12-24 Thread kiwiwings
Author: kiwiwings
Date: Tue Dec 24 19:48:22 2019
New Revision: 1871944

URL: http://svn.apache.org/viewvc?rev=1871944=rev
Log:
Replace internal GUID class with ClassID

Modified:
poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java
poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java
poi/trunk/src/java/org/apache/poi/hssf/record/HyperlinkRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java

Modified: poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java?rev=1871944=1871943=1871944=diff
==
--- poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java Tue Dec 24 19:48:22 2019
@@ -19,17 +19,20 @@ package org.apache.poi.hpsf;
 
 import java.util.Arrays;
 
-import org.apache.poi.util.HexDump;
+import org.apache.commons.codec.binary.Hex;
+import org.apache.poi.common.Duplicatable;
+import org.apache.poi.util.LittleEndianInput;
+import org.apache.poi.util.LittleEndianOutput;
 
 /**
  * Represents a class ID (16 bytes). Unlike other little-endian
  * type the {@link ClassID} is not just 16 bytes stored in the wrong
  * order. Instead, it is a double word (4 bytes) followed by two
  * words (2 bytes each) followed by 8 bytes.
- *  
- * The ClassID (or CLSID) is a UUID - see RFC 4122 
+ *
+ * The ClassID (or CLSID) is a UUID - see RFC 4122
  */
-public class ClassID {
+public class ClassID implements Duplicatable {
 /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
 public static final ClassID OLE10_PACKAGE  = 
ClassIDPredefined.OLE_V1_PACKAGE.getClassID();
 /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
@@ -84,10 +87,10 @@ public class ClassID {
 public static final ClassID POWERPOINT2007_MACRO = 
ClassIDPredefined.POWERPOINT_V12_MACRO.getClassID();
 /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
 public static final ClassID EQUATION30 = 
ClassIDPredefined.EQUATION_V3.getClassID();
-   
+
 /** The number of bytes occupied by this object in the byte stream. */
 public static final int LENGTH = 16;
-   
+
 /**
  * The bytes making out the class ID in correct order, i.e. big-endian.
  */
@@ -111,11 +114,18 @@ public class ClassID {
 Arrays.fill(bytes, (byte)0);
 }
 
+/**
+ * Clones the given ClassID
+ */
+public ClassID(ClassID other) {
+System.arraycopy(other.bytes, 0, bytes, 0, bytes.length);
+}
+
 
 /**
- * Creates a {@link ClassID} from a human-readable representation of the 
Class ID in standard 
+ * Creates a {@link ClassID} from a human-readable representation of the 
Class ID in standard
  * format {@code "{----}"}.
- * 
+ *
  * @param externalForm representation of the Class ID represented by this 
object.
  */
 public ClassID(String externalForm) {
@@ -124,7 +134,16 @@ public class ClassID {
bytes[i/2] = (byte)Integer.parseInt(clsStr.substring(i, i+2), 
16);
 }
 }
-
+
+/**
+ * Reads the ClassID from the input
+ * @param lei the input (stream)
+ */
+public ClassID(LittleEndianInput lei) {
+byte[] buf = bytes.clone();
+lei.readFully(buf);
+read(buf, 0);
+}
 
 /**
  * @return The number of bytes occupied by this object in the byte stream.
@@ -204,7 +223,7 @@ public class ClassID {
 ("Destination byte[] must have room for at least 16 bytes, " +
  "but has a length of only " + dst.length + ".");
 }
-
+
 /* Write double word. */
 dst[0 + offset] = bytes[3];
 dst[1 + offset] = bytes[2];
@@ -223,7 +242,16 @@ public class ClassID {
 System.arraycopy(bytes, 8, dst, 8 + offset, 8);
 }
 
-
+/**
+ * Write the class ID to a LittleEndianOutput (stream)
+ *
+ * @param leo the output
+ */
+public void write(LittleEndianOutput leo) {
+byte[] buf = bytes.clone();
+write(buf, 0);
+leo.write(buf);
+}
 
 /**
  * Checks whether this {@code ClassID} is equal to another object.
@@ -275,22 +303,23 @@ public class ClassID {
 }
 
 /**
- * Returns a human-readable representation of the Class ID in standard 
+ * Returns a human-readable representation of the Class ID in standard
  * format {@code "{----}"}.
- * 
+ *
  * @return String representation of the Class ID represented by this 
object.
  */
 @Override
 public String toString() {
-StringBuilder sbClassId = new StringBuilder(38);
-sbClassId.append('{');
-for (int i = 0; i < LENGTH; i++) {
-sbClassI

svn commit: r1871938 [3/3] - in /poi: site/src/documentation/content/xdocs/ trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/ trunk/src/scra

2019-12-24 Thread kiwiwings
Modified: 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java?rev=1871938=1871937=1871938=diff
==
--- 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java
 (original)
+++ 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java
 Tue Dec 24 11:56:42 2019
@@ -17,42 +17,50 @@
 
 package org.apache.poi.hwpf.usermodel;
 
+import org.apache.poi.common.Duplicatable;
 import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.Removal;
 
 /**
  * This data structure is used by a paragraph to determine how it should drop
  * its first letter. I think its the visual effect that will show a giant first
  * letter to a paragraph. I've seen this used in the first paragraph of a book
- *
- * @author Ryan Ackley
  */
-public final class DropCapSpecifier implements Cloneable
-{
+public final class DropCapSpecifier implements Duplicatable {
+private static final BitField _lines = BitFieldFactory.getInstance( 0xf8 );
+private static final BitField _type = BitFieldFactory.getInstance( 0x07 );
+
 private short _fdct;
-private static BitField _lines = BitFieldFactory.getInstance( 0xf8 );
-private static BitField _type = BitFieldFactory.getInstance( 0x07 );
 
-public DropCapSpecifier()
-{
-this._fdct = 0;
+public DropCapSpecifier() {
+_fdct = 0;
+}
+
+public DropCapSpecifier(DropCapSpecifier other) {
+_fdct = other._fdct;
 }
 
-public DropCapSpecifier( byte[] buf, int offset )
-{
+public DropCapSpecifier( byte[] buf, int offset ) {
 this( LittleEndian.getShort( buf, offset ) );
 }
 
-public DropCapSpecifier( short fdct )
-{
+public DropCapSpecifier( short fdct ) {
 this._fdct = fdct;
 }
 
 @Override
-public DropCapSpecifier clone()
-{
-return new DropCapSpecifier( _fdct );
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
+public DropCapSpecifier clone() {
+return copy();
+}
+
+@Override
+public DropCapSpecifier copy() {
+return new DropCapSpecifier(this);
 }
 
 @Override

Modified: 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/LineSpacingDescriptor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/LineSpacingDescriptor.java?rev=1871938=1871937=1871938=diff
==
--- 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/LineSpacingDescriptor.java
 (original)
+++ 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/LineSpacingDescriptor.java
 Tue Dec 24 11:56:42 2019
@@ -17,36 +17,44 @@
 
 package org.apache.poi.hwpf.usermodel;
 
+import org.apache.poi.common.Duplicatable;
 import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.Removal;
 
 /**
  * This class is used to determine line spacing for a paragraph.
- *
- * @author Ryan Ackley
  */
-public final class LineSpacingDescriptor
-  implements Cloneable
-{
+public final class LineSpacingDescriptor implements Duplicatable {
   short _dyaLine;
   short _fMultiLinespace;
 
-  public LineSpacingDescriptor()
-  {
-  //see page 181
+  public LineSpacingDescriptor() {
   _dyaLine = 240;
   _fMultiLinespace = 1;
   }
 
-  public LineSpacingDescriptor(byte[] buf, int offset)
-  {
+  public LineSpacingDescriptor(LineSpacingDescriptor other) {
+  _dyaLine = other._dyaLine;
+  _fMultiLinespace = other._fMultiLinespace;
+  }
+
+
+  public LineSpacingDescriptor(byte[] buf, int offset) {
 _dyaLine = LittleEndian.getShort(buf, offset);
 _fMultiLinespace = LittleEndian.getShort(buf, offset + 
LittleEndian.SHORT_SIZE);
   }
 
-  public Object clone()
-throws CloneNotSupportedException
-  {
-return super.clone();
+  @Override
+  @SuppressWarnings("squid:S2975")
+  @Deprecated
+  @Removal(version = "5.0.0")
+  public LineSpacingDescriptor clone() {
+return copy();
+  }
+
+  @Override
+  public LineSpacingDescriptor copy() {
+return new LineSpacingDescriptor(this);
   }
 
   public void setMultiLinespace(short fMultiLinespace)
@@ -71,7 +79,7 @@ public final class LineSpacingDescriptor
   {
 _dyaLine = dyaLine;
   }
-  
+
   @Override
   public boolean equals(Object o)
   {
@@ -86,7 +94,7 @@ public final class LineSpacingDescriptor
   assert false : "hashCode not designed";
   return 42; // any arbitrary constant will do
   }
-  
+
 public boolean isEmpty()
 {
 return _dyaLine == 0 && _fMultiLinespace == 0;

Modified: 

svn commit: r1871938 [1/3] - in /poi: site/src/documentation/content/xdocs/ trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/ trunk/src/scra

2019-12-24 Thread kiwiwings
Author: kiwiwings
Date: Tue Dec 24 11:56:42 2019
New Revision: 1871938

URL: http://svn.apache.org/viewvc?rev=1871938=rev
Log:
#64004 - Replace clone() with copy constructor - mainly HWPF classes

Modified:
poi/site/src/documentation/content/xdocs/changes.xml

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/BookmarkFirstDescriptor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/BytePropertyNode.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/CHPBinTable.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/CHPX.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Colorref.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/FootnoteReferenceDescriptor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/GenericPropertyNode.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Hyphenation.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/OldCHPBinTable.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/OldSectionTable.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/OldTextPiece.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PAPBinTable.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PAPX.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ParagraphHeight.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PieceDescriptor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PropertyModifier.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PropertyNode.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/SEPX.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/SectionDescriptor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/SectionTable.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/SinglentonTextPiece.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/TabDescriptor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/TextPiece.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/BKFAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/CHPAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/FRDAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/HRESIAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/SEPAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/SHD80AbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/SHDAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/TAPAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/TBDAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/TCAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/TLPAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmUncompressor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/sprm/SprmBuffer.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/BookmarksImpl.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/BorderCode.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/CharacterProperties.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/CharacterRun.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DateAndTime.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/LineSpacingDescriptor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Paragraph.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ParagraphProperties.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Range.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Section.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/SectionProperties.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ShadingDescriptor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ShadingDescriptor80.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableAutoformatLookSpecifier.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableCellDescriptor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableProperties.java

Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1871938=1871937=1871938=diff
==
--- poi

svn commit: r1871938 [2/3] - in /poi: site/src/documentation/content/xdocs/ trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/ trunk/src/scra

2019-12-24 Thread kiwiwings
Modified: 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java?rev=1871938=1871937=1871938=diff
==
--- 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java
 (original)
+++ 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java
 Tue Dec 24 11:56:42 2019
@@ -19,6 +19,7 @@ package org.apache.poi.hwpf.model.types;
 
 
 import java.util.Arrays;
+import java.util.stream.Stream;
 
 import org.apache.poi.hwpf.model.TabDescriptor;
 import org.apache.poi.hwpf.usermodel.BorderCode;
@@ -31,18 +32,34 @@ import org.apache.poi.util.Internal;
 
 /**
  * Paragraph Properties.
- * 
- * NOTE: This source is automatically generated please do not modify this 
file.  Either subclass or
- *   remove the record in src/types/definitions.
- * 
- * This class is internal. It content or properties may change without notice 
- * due to changes in our knowledge of internal Microsoft Word binary 
structures.
-
- * @author S. Ryan Ackley
  */
+@SuppressWarnings("unused")
 @Internal
-public abstract class PAPAbstractType
-{
+public abstract class PAPAbstractType {
+
+protected static final byte BRCL_SINGLE = 0;
+protected static final byte BRCL_THICK = 1;
+protected static final byte BRCL_DOUBLE = 2;
+protected static final byte BRCL_SHADOW = 3;
+
+protected static final byte BRCP_NONE = 0;
+protected static final byte BRCP_BORDER_ABOVE = 1;
+protected static final byte BRCP_BORDER_BELOW = 2;
+protected static final byte BRCP_BOX_AROUND = 15;
+protected static final byte BRCP_BAR_TO_LEFT_OF_PARAGRAPH = 16;
+
+protected static final boolean FMINHEIGHT_EXACT = false;
+protected static final boolean FMINHEIGHT_AT_LEAST = true;
+
+protected static final byte WALIGNFONT_HANGING = 0;
+protected static final byte WALIGNFONT_CENTERED = 1;
+protected static final byte WALIGNFONT_ROMAN = 2;
+protected static final byte WALIGNFONT_VARIABLE = 3;
+protected static final byte WALIGNFONT_AUTO = 4;
+
+private static final BitField fVertical = new BitField(0x0001);
+private static final BitField fBackward = new BitField(0x0002);
+private static final BitField fRotateFont = new BitField(0x0004);
 
 protected int field_1_istd;
 protected boolean field_2_fSideBySide;
@@ -50,16 +67,7 @@ public abstract class PAPAbstractType
 protected boolean field_4_fKeepFollow;
 protected boolean field_5_fPageBreakBefore;
 protected byte field_6_brcl;
-/**/protected final static byte BRCL_SINGLE = 0;
-/**/protected final static byte BRCL_THICK = 1;
-/**/protected final static byte BRCL_DOUBLE = 2;
-/**/protected final static byte BRCL_SHADOW = 3;
 protected byte field_7_brcp;
-/**/protected final static byte BRCP_NONE = 0;
-/**/protected final static byte BRCP_BORDER_ABOVE = 1;
-/**/protected final static byte BRCP_BORDER_BELOW = 2;
-/**/protected final static byte BRCP_BOX_AROUND = 15;
-/**/protected final static byte BRCP_BAR_TO_LEFT_OF_PARAGRAPH = 16;
 protected byte field_8_ilvl;
 protected int field_9_ilfo;
 protected boolean field_10_fNoLnn;
@@ -80,8 +88,6 @@ public abstract class PAPAbstractType
 protected boolean field_25_fNoAutoHyph;
 protected int field_26_dyaHeight;
 protected boolean field_27_fMinHeight;
-/**/protected final static boolean FMINHEIGHT_EXACT = false;
-/**/protected final static boolean FMINHEIGHT_AT_LEAST = true;
 protected DropCapSpecifier field_28_dcs;
 protected int field_29_dyaFromText;
 protected int field_30_dxaFromText;
@@ -94,15 +100,7 @@ public abstract class PAPAbstractType
 protected boolean field_37_fAutoSpaceDE;
 protected boolean field_38_fAutoSpaceDN;
 protected int field_39_wAlignFont;
-/**/protected final static byte WALIGNFONT_HANGING = 0;
-/**/protected final static byte WALIGNFONT_CENTERED = 1;
-/**/protected final static byte WALIGNFONT_ROMAN = 2;
-/**/protected final static byte WALIGNFONT_VARIABLE = 3;
-/**/protected final static byte WALIGNFONT_AUTO = 4;
 protected short field_40_fontAlign;
-/**/private static BitField fVertical = new BitField(0x0001);
-/**/private static BitField fBackward = new BitField(0x0002);
-/**/private static BitField fRotateFont = new BitField(0x0004);
 protected byte field_41_lvl;
 protected boolean field_42_fBiDi;
 protected boolean field_43_fNumRMIns;
@@ -143,29 +141,111 @@ public abstract class PAPAbstractType
 protected long field_78_ipgp;
 protected long field_79_rsid;
 
-protected PAPAbstractType()
-{
-this.field_11_lspd = new LineSpacingDescriptor();
-this.field_11_lspd = new LineSpacingDescriptor();
-this.field_28_dcs = new 

svn commit: r1871913 [2/2] - in /poi/trunk/src: java/org/apache/poi/ddf/ java/org/apache/poi/hpsf/ java/org/apache/poi/hssf/record/ java/org/apache/poi/hssf/record/common/ java/org/apache/poi/hssf/use

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Xst.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Xst.java?rev=1871913=1871912=1871913=diff
==
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Xst.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Xst.java Mon Dec 23 
00:15:55 2019
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndian;
  * 
  * Documentation quoted from Page 424 of 621. [MS-DOC] -- v20110315 Word (.doc)
  * Binary File Format
- * 
+ *
  * @author Sergey Vladimirov (vlsergey {at} gmail {dot} com)
  */
 public class Xst
@@ -118,13 +118,8 @@ public class Xst
 }
 
 @Override
-public int hashCode()
-{
-final int prime = 31;
-int result = 1;
-result = prime * result + _cch;
-result = prime * result + Arrays.hashCode( _rgtchar );
-return result;
+public int hashCode() {
+return Arrays.deepHashCode(new Object[]{_cch,_rgtchar});
 }
 
 public void serialize( byte[] data, int startOffset )

Modified: 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/CHPAbstractType.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/CHPAbstractType.java?rev=1871913=1871912=1871913=diff
==
--- 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/CHPAbstractType.java
 (original)
+++ 
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/CHPAbstractType.java
 Mon Dec 23 00:15:55 2019
@@ -34,7 +34,7 @@ import org.apache.poi.util.Internal;
  * NOTE: This source is automatically generated please do not modify this 
file.  Either subclass or
  *   remove the record in src/types/definitions.
  * 
- * This class is internal. It content or properties may change without notice 
+ * This class is internal. It content or properties may change without notice
  * due to changes in our knowledge of internal Microsoft Word binary 
structures.
 
  * @author S. Ryan Ackley
@@ -423,89 +423,20 @@ public abstract class CHPAbstractType
 }
 
 @Override
-public int hashCode()
-{
-final int prime = 31;
-int result = 1;
-result = prime * result + field_1_grpfChp;
-result = prime * result + field_2_hps;
-result = prime * result + field_3_ftcAscii;
-result = prime * result + field_4_ftcFE;
-result = prime * result + field_5_ftcOther;
-result = prime * result + field_6_ftcBi;
-result = prime * result + field_7_dxaSpace;
-result = prime * result
-+ ((field_8_cv == null) ? 0 : field_8_cv.hashCode());
-result = prime * result + field_9_ico;
-result = prime * result + field_10_pctCharWidth;
-result = prime * result + field_11_lidDefault;
-result = prime * result + field_12_lidFE;
-result = prime * result + field_13_kcd;
-result = prime * result + ( field_14_fUndetermine? 1231 : 1237 );
-result = prime * result + field_15_iss;
-result = prime * result + ( field_16_fSpecSymbol? 1231 : 1237 );
-result = prime * result + field_17_idct;
-result = prime * result + field_18_idctHint;
-result = prime * result + field_19_kul;
-result = prime * result
-+ ((field_20_hresi == null) ? 0 : field_20_hresi.hashCode());
-result = prime * result + field_21_hpsKern;
-result = prime * result + field_22_hpsPos;
-result = prime * result
-+ ((field_23_shd == null) ? 0 : field_23_shd.hashCode());
-result = prime * result
-+ ((field_24_brc == null) ? 0 : field_24_brc.hashCode());
-result = prime * result + field_25_ibstRMark;
-result = prime * result + field_26_sfxtText;
-result = prime * result + ( field_27_fDblBdr? 1231 : 1237 );
-result = prime * result + ( field_28_fBorderWS? 1231 : 1237 );
-result = prime * result + field_29_ufel;
-result = prime * result + field_30_copt;
-result = prime * result + field_31_hpsAsci;
-result = prime * result + field_32_hpsFE;
-result = prime * result + field_33_hpsBi;
-result = prime * result + field_34_ftcSym;
-result = prime * result + field_35_xchSym;
-result = prime * result + field_36_fcPic;
-result = prime * result + field_37_fcObj;
-result = prime * result + field_38_lTagObj;
-result = prime * result + field_39_fcData;
-result = prime * result
-+ ((field_40_hresiOld == null) ? 0 : 
field_40_hresiOld.hashCode());
-result = prime * result + field_41_ibstRMarkDel;
-result = prime * result
-+ ((field_42_dttmRMark == null) ? 0 : 
field_42_dttmRMark.hashCode());
-

svn commit: r1871913 [1/2] - in /poi/trunk/src: java/org/apache/poi/ddf/ java/org/apache/poi/hpsf/ java/org/apache/poi/hssf/record/ java/org/apache/poi/hssf/record/common/ java/org/apache/poi/hssf/use

2019-12-22 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec 23 00:15:55 2019
New Revision: 1871913

URL: http://svn.apache.org/viewvc?rev=1871913=rev
Log:
Replace custom hashCode code with Objects.hash() / Arrays.deepHashCode()

Modified:
poi/trunk/src/java/org/apache/poi/ddf/EscherComplexProperty.java
poi/trunk/src/java/org/apache/poi/ddf/EscherSimpleProperty.java
poi/trunk/src/java/org/apache/poi/hpsf/CustomProperty.java
poi/trunk/src/java/org/apache/poi/hpsf/Property.java
poi/trunk/src/java/org/apache/poi/hpsf/Section.java
poi/trunk/src/java/org/apache/poi/hssf/record/ExtendedFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FontRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/ExtRst.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/PhRun.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/UnicodeString.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFFont.java
poi/trunk/src/java/org/apache/poi/hssf/util/HSSFColor.java

poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationConditionalFormatRule.java
poi/trunk/src/java/org/apache/poi/ss/util/CellReference.java

poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackageRelationship.java

poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ContentType.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFHyperlinkRecord.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/HSLFTabStop.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/HSLFTabStopPropCollection.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/TextPropCollection.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/BookmarkFirstDescriptor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/FibBase.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/FibRgW97.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/FootnoteReferenceDescriptor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Hyphenation.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/LFOData.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListData.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListFormatOverrideLevel.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PICF.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PieceDescriptor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PropertyModifier.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PropertyNode.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/SavedByEntry.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StdfBase.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StdfPost2000.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Stshif.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleDescription.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/TextPieceTable.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Xst.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/CHPAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/FFDataBaseAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/FibRgLw95AbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/FibRgLw97AbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/GrfhicAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/LFOAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/LFOLVLBaseAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/LSTFAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/LVLFAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/SHD80AbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/SHDAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/BookmarksImpl.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/DropCapSpecifier.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableAutoformatLookSpecifier.java

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherComplexProperty.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherComplexProperty.java?rev=1871913=1871912=1871913=diff
==
--- poi/trunk/src/java/org/apache/poi/ddf

svn commit: r1871911 [14/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/po

2019-12-22 Thread kiwiwings
Modified: 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfPenStyle.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfPenStyle.java?rev=1871911=1871910=1871911=diff
==
--- 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfPenStyle.java 
(original)
+++ 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfPenStyle.java 
Sun Dec 22 21:44:45 2019
@@ -23,10 +23,28 @@ public class HemfPenStyle extends HwmfPe
 
 private float[] dashPattern;
 
+public HemfPenStyle(int flag) {
+super(flag);
+}
+
+public HemfPenStyle(HemfPenStyle other) {
+super(other);
+dashPattern = (other.dashPattern == null) ? null : 
other.dashPattern.clone();
+}
+
+public static HemfPenStyle valueOf(
+HwmfLineCap cap, HwmfLineJoin join, HwmfLineDash dash, boolean 
isAlternateDash, boolean isGeometric) {
+int flag = 0;
+flag = SUBSECTION_DASH.setValue(flag, dash.wmfFlag);
+flag = SUBSECTION_ENDCAP.setValue(flag, cap.wmfFlag);
+flag = SUBSECTION_JOIN.setValue(flag, join.wmfFlag);
+flag = SUBSECTION_ALTERNATE.setBoolean(flag, isAlternateDash);
+flag = SUBSECTION_GEOMETRIC.setBoolean(flag, isGeometric);
+return new HemfPenStyle(flag);
+}
+
 public static HemfPenStyle valueOf(int flag) {
-HemfPenStyle ps = new HemfPenStyle();
-ps.flag = flag;
-return ps;
+return new HemfPenStyle(flag);
 }
 
 @Override
@@ -39,7 +57,7 @@ public class HemfPenStyle extends HwmfPe
 }
 
 @Override
-public HemfPenStyle clone() {
-return (HemfPenStyle)super.clone();
+public HemfPenStyle copy() {
+return new HemfPenStyle(this);
 }
 }

Modified: 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java?rev=1871911=1871910=1871911=diff
==
--- 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
 (original)
+++ 
poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
 Sun Dec 22 21:44:45 2019
@@ -34,13 +34,16 @@ import java.util.function.Supplier;
 import org.apache.poi.common.usermodel.GenericRecord;
 import org.apache.poi.hemf.draw.HemfDrawProperties;
 import org.apache.poi.hemf.draw.HemfGraphics;
+import org.apache.poi.hemf.record.emf.HemfPenStyle;
 import org.apache.poi.hemf.record.emfplus.HemfPlusBrush.EmfPlusBrush;
 import org.apache.poi.hemf.record.emfplus.HemfPlusDraw.EmfPlusUnitType;
 import 
org.apache.poi.hemf.record.emfplus.HemfPlusHeader.EmfPlusGraphicsVersion;
 import org.apache.poi.hemf.record.emfplus.HemfPlusObject.EmfPlusObjectData;
 import org.apache.poi.hemf.record.emfplus.HemfPlusObject.EmfPlusObjectType;
 import org.apache.poi.hemf.record.emfplus.HemfPlusPath.EmfPlusPath;
-import org.apache.poi.hwmf.record.HwmfPenStyle;
+import org.apache.poi.hwmf.record.HwmfPenStyle.HwmfLineCap;
+import org.apache.poi.hwmf.record.HwmfPenStyle.HwmfLineDash;
+import org.apache.poi.hwmf.record.HwmfPenStyle.HwmfLineJoin;
 import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.Internal;
@@ -506,55 +509,45 @@ public class HemfPlusPen {
 
 brush.applyPen(ctx, continuedObjectData);
 prop.setPenWidth(penWidth);
-prop.setPenStyle(new HwmfPenStyle(){
-@Override
-public HwmfLineCap getLineCap() {
-// ignore endCap for now
-switch(startCap) {
-default:
-case FLAT:
-return HwmfLineCap.FLAT;
-case ROUND:
-return HwmfLineCap.ROUND;
-case SQUARE:
-return HwmfLineCap.SQUARE;
-}
-}
 
-@Override
-public HwmfLineJoin getLineJoin() {
-switch (join) {
-default:
-case BEVEL:
-return HwmfLineJoin.BEVEL;
-case ROUND:
-return HwmfLineJoin.ROUND;
-case MITER_CLIPPED:
-case MITER:
-return HwmfLineJoin.MITER;
-}
-}
+HwmfLineCap cap;
+// ignore endCap for now
+switch(startCap) {
+default:
+case FLAT:
+cap = HwmfLineCap.FLAT;
+break;
+case ROUND:
+cap = HwmfLineCap.ROUND;

svn commit: r1871911 [12/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/po

2019-12-22 Thread kiwiwings
Modified: 
poi/trunk/src/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java?rev=1871911=1871910=1871911=diff
==
--- 
poi/trunk/src/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java 
(original)
+++ 
poi/trunk/src/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java 
Sun Dec 22 21:44:45 2019
@@ -46,11 +46,15 @@ import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.StringUtil;
 
-public class CryptoAPIEncryptor extends Encryptor implements Cloneable {
-
+public class CryptoAPIEncryptor extends Encryptor {
+
 private int chunkSize = 512;
-
-CryptoAPIEncryptor() {
+
+CryptoAPIEncryptor() {}
+
+CryptoAPIEncryptor(CryptoAPIEncryptor other) {
+super(other);
+chunkSize = other.chunkSize;
 }
 
 @Override
@@ -98,31 +102,31 @@ public class CryptoAPIEncryptor extends
 public Cipher initCipherForBlock(Cipher cipher, int block)
 throws GeneralSecurityException {
 return CryptoAPIDecryptor.initCipherForBlock(cipher, block, 
getEncryptionInfo(), getSecretKey(), Cipher.ENCRYPT_MODE);
-}
+}
 
 @Override
 public ChunkedCipherOutputStream getDataStream(DirectoryNode dir) throws 
IOException {
 throw new IOException("not supported");
 }
-
+
 @Override
 public CryptoAPICipherOutputStream getDataStream(OutputStream stream, int 
initialOffset)
 throws IOException, GeneralSecurityException {
 return new CryptoAPICipherOutputStream(stream);
 }
-
+
 /**
  * Encrypt the Document-/SummaryInformation and other optionally streams.
  * Opposed to other crypto modes, cryptoapi is record based and can't be 
used
  * to stream-encrypt a whole file
- * 
+ *
  * @see http://msdn.microsoft.com/en-us/library/dd943321(v=office.12).aspx">2.3.5.4
 RC4 CryptoAPI Encrypted Summary Stream
  */
 public void setSummaryEntries(DirectoryNode dir, String encryptedStream, 
POIFSFileSystem entries)
 throws IOException, GeneralSecurityException {
 CryptoAPIDocumentOutputStream bos = new 
CryptoAPIDocumentOutputStream(this); // NOSONAR
 byte[] buf = new byte[8];
-
+
 bos.write(buf, 0, 8); // skip header
 List descList = new ArrayList<>();
 
@@ -137,24 +141,24 @@ public class CryptoAPIEncryptor extends
 descEntry.streamName = entry.getName();
 descEntry.flags = StreamDescriptorEntry.flagStream.setValue(0, 1);
 descEntry.reserved2 = 0;
-
+
 bos.setBlock(block);
 DocumentInputStream dis = dir.createDocumentInputStream(entry);
 IOUtils.copy(dis, bos);
 dis.close();
-
+
 descEntry.streamSize = bos.size() - descEntry.streamOffset;
 descList.add(descEntry);
-
+
 block++;
 }
-
+
 int streamDescriptorArrayOffset = bos.size();
-
+
 bos.setBlock(0);
 LittleEndian.putUInt(buf, 0, descList.size());
 bos.write(buf, 0, 4);
-
+
 for (StreamDescriptorEntry sde : descList) {
 LittleEndian.putUInt(buf, 0, sde.streamOffset);
 bos.write(buf, 0, 4);
@@ -173,7 +177,7 @@ public class CryptoAPIEncryptor extends
 LittleEndian.putShort(buf, 0, (short)0); // null-termination
 bos.write(buf, 0, 2);
 }
-
+
 int savedSize = bos.size();
 int streamDescriptorArraySize = savedSize - 
streamDescriptorArrayOffset;
 LittleEndian.putUInt(buf, 0, streamDescriptorArrayOffset);
@@ -183,7 +187,7 @@ public class CryptoAPIEncryptor extends
 bos.setBlock(0);
 bos.write(buf, 0, 8);
 bos.setSize(savedSize);
-
+
 dir.createDocument(encryptedStream, new 
ByteArrayInputStream(bos.getBuf(), 0, savedSize));
 }
 
@@ -195,10 +199,10 @@ public class CryptoAPIEncryptor extends
 public void setChunkSize(int chunkSize) {
 this.chunkSize = chunkSize;
 }
-
+
 @Override
-public CryptoAPIEncryptor clone() throws CloneNotSupportedException {
-return (CryptoAPIEncryptor)super.clone();
+public CryptoAPIEncryptor copy() {
+return new CryptoAPIEncryptor(this);
 }
 
 protected class CryptoAPICipherOutputStream extends 
ChunkedCipherOutputStream {

Modified: 
poi/trunk/src/java/org/apache/poi/poifs/crypt/standard/StandardDecryptor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/crypt/standard/StandardDecryptor.java?rev=1871911=1871910=1871911=diff
==
--- 

svn commit: r1871911 [10/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/po

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java Sun Dec 
22 21:44:45 2019
@@ -23,13 +23,14 @@ import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
  * The text record is used to define text stored on a chart.
  */
 public final class TextRecord extends StandardRecord {
-public final static short  sid = 0x1025;
-
+public static final short sid = 0x1025;
+
 private static final BitField dataLabelPlacement= 
BitFieldFactory.getInstance(0x000F);
 private static final BitField autoColor = 
BitFieldFactory.getInstance(0x0001);
 private static final BitField showKey   = 
BitFieldFactory.getInstance(0x0002);
@@ -45,66 +46,82 @@ public final class TextRecord extends St
 private static final BitField showValueAsPercentage = 
BitFieldFactory.getInstance(0x1000);
 private static final BitField showBubbleSizes   = 
BitFieldFactory.getInstance(0x2000);
 private static final BitField showLabel = 
BitFieldFactory.getInstance(0x4000);
-
-
-private  byte   field_1_horizontalAlignment;
-public final static byteHORIZONTAL_ALIGNMENT_LEFT  = 1;
-public final static byteHORIZONTAL_ALIGNMENT_CENTER= 2;
-public final static byteHORIZONTAL_ALIGNMENT_BOTTOM= 3;
-public final static byteHORIZONTAL_ALIGNMENT_JUSTIFY   = 4;
-private  byte   field_2_verticalAlignment;
-public final static byteVERTICAL_ALIGNMENT_TOP = 1;
-public final static byteVERTICAL_ALIGNMENT_CENTER  = 2;
-public final static byteVERTICAL_ALIGNMENT_BOTTOM  = 3;
-public final static byteVERTICAL_ALIGNMENT_JUSTIFY = 4;
-private  short  field_3_displayMode;
-public final static short   DISPLAY_MODE_TRANSPARENT   = 1;
-public final static short   DISPLAY_MODE_OPAQUE= 2;
-private  intfield_4_rgbColor;
-private  intfield_5_x;
-private  intfield_6_y;
-private  intfield_7_width;
-private  intfield_8_height;
-private  short  field_9_options1;
-public final static short  ROTATION_NONE  = 0;
-public final static short  ROTATION_TOP_TO_BOTTOM = 1;
-public final static short  ROTATION_ROTATED_90_DEGREES= 2;
-public final static short  ROTATION_ROTATED_90_DEGREES_CLOCKWISE = 3;
-private  short  field_10_indexOfColorValue;
-private  short  field_11_options2;
-public final static short  DATA_LABEL_PLACEMENT_CHART_DEPENDENT = 0;
-public final static short  DATA_LABEL_PLACEMENT_OUTSIDE   = 1;
-public final static short  DATA_LABEL_PLACEMENT_INSIDE= 2;
-public final static short  DATA_LABEL_PLACEMENT_CENTER= 3;
-public final static short  DATA_LABEL_PLACEMENT_AXIS  = 4;
-public final static short  DATA_LABEL_PLACEMENT_ABOVE = 5;
-public final static short  DATA_LABEL_PLACEMENT_BELOW = 6;
-public final static short  DATA_LABEL_PLACEMENT_LEFT  = 7;
-public final static short  DATA_LABEL_PLACEMENT_RIGHT = 8;
-public final static short  DATA_LABEL_PLACEMENT_AUTO  = 9;
-public final static short  DATA_LABEL_PLACEMENT_USER_MOVED = 10;
-private  short  field_12_textRotation;
-
-
-public TextRecord()
-{
 
-}
 
-public TextRecord(RecordInputStream in)
-{
-field_1_horizontalAlignment= in.readByte();
-field_2_verticalAlignment  = in.readByte();
-field_3_displayMode= in.readShort();
-field_4_rgbColor   = in.readInt();
-field_5_x  = in.readInt();
-field_6_y  = in.readInt();
-field_7_width  = in.readInt();
-field_8_height = in.readInt();
-field_9_options1   = in.readShort();
-field_10_indexOfColorValue = in.readShort();
-field_11_options2  = in.readShort();
-field_12_textRotation  = in.readShort();
+public static final byte HORIZONTAL_ALIGNMENT_LEFT  = 1;
+public static final byte HORIZONTAL_ALIGNMENT_CENTER= 2;
+public static final byte HORIZONTAL_ALIGNMENT_BOTTOM= 3;
+public static final byte 

svn commit: r1871911 [8/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/AreaRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/AreaRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/chart/AreaRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/AreaRecord.java Sun Dec 
22 21:44:45 2019
@@ -23,28 +23,28 @@ import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
- * The area record is used to define a area chart.
- * 
- * @author Glen Stampoultzis (glens at apache.org)
+ * The area record is used to define a area chart.
  */
-public final class AreaRecord extends StandardRecord implements Cloneable {
-public final static short  sid = 0x101A;
-private  short  field_1_formatFlags;
+public final class AreaRecord extends StandardRecord {
+public static final short sid = 0x101A;
 private static final BitField stacked = 
BitFieldFactory.getInstance(0x1);
 private static final BitField displayAsPercentage = 
BitFieldFactory.getInstance(0x2);
 private static final BitField shadow  = 
BitFieldFactory.getInstance(0x4);
 
+private short field_1_formatFlags;
 
-public AreaRecord()
-{
 
-}
+public AreaRecord() {}
 
-public AreaRecord(RecordInputStream in)
-{
+public AreaRecord(AreaRecord other) {
+super(other);
+field_1_formatFlags = other.field_1_formatFlags;
+}
 
+public AreaRecord(RecordInputStream in) {
 field_1_formatFlags= in.readShort();
 }
 
@@ -56,10 +56,10 @@ public final class AreaRecord extends St
 buffer.append(".formatFlags  = ")
 .append("0x").append(HexDump.toHex(  getFormatFlags ()))
 .append(" (").append( getFormatFlags() ).append(" )");
-buffer.append(System.getProperty("line.separator")); 
-buffer.append(" .stacked  = 
").append(isStacked()).append('\n'); 
-buffer.append(" .displayAsPercentage  = 
").append(isDisplayAsPercentage()).append('\n'); 
-buffer.append(" .shadow   = 
").append(isShadow()).append('\n'); 
+buffer.append(System.getProperty("line.separator"));
+buffer.append(" .stacked  = 
").append(isStacked()).append('\n');
+buffer.append(" .displayAsPercentage  = 
").append(isDisplayAsPercentage()).append('\n');
+buffer.append(" .shadow   = 
").append(isShadow()).append('\n');
 
 buffer.append("[/AREA]\n");
 return buffer.toString();
@@ -79,16 +79,13 @@ public final class AreaRecord extends St
 }
 
 @Override
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
 public AreaRecord clone() {
-AreaRecord rec = new AreaRecord();
-
-rec.field_1_formatFlags = field_1_formatFlags;
-return rec;
+return copy();
 }
 
-
-
-
 /**
  * Get the format flags field for the Area record.
  */
@@ -158,4 +155,9 @@ public final class AreaRecord extends St
 {
 return shadow.isSet(field_1_formatFlags);
 }
+
+@Override
+public AreaRecord copy() {
+return new AreaRecord(this);
+}
 }

Modified: 
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisLineFormatRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisLineFormatRecord.java?rev=1871911=1871910=1871911=diff
==
--- 
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisLineFormatRecord.java 
(original)
+++ 
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisLineFormatRecord.java 
Sun Dec 22 21:44:45 2019
@@ -21,29 +21,29 @@ import org.apache.poi.hssf.record.Record
 import org.apache.poi.hssf.record.StandardRecord;
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
- * The axis line format record defines the axis type details.
- * 
- * @author Glen Stampoultzis (glens at apache.org)
+ * The axis line format record defines the axis type details.
  */
-public final class AxisLineFormatRecord extends StandardRecord implements 
Cloneable {
-public final static short  sid = 0x1021;
-private  short  field_1_axisType;
-public final static short   AXIS_TYPE_AXIS_LINE= 0;
-public final static short   AXIS_TYPE_MAJOR_GRID_LINE  = 1;
-public final static short   AXIS_TYPE_MINOR_GRID_LINE  = 2;
-public final 

svn commit: r1871911 [15/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/po

2019-12-22 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java?rev=1871911=1871910=1871911=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java
 Sun Dec 22 21:44:45 2019
@@ -18,23 +18,34 @@
 package org.apache.poi.hssf.record;
 
 import junit.framework.TestCase;
-
 import org.apache.poi.hssf.record.common.UnicodeString;
 import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
 import org.apache.poi.util.IntMapper;
+import org.apache.poi.util.LittleEndianConsts;
 
 /**
  * Tests that records size calculates correctly.
- * 
+ *
  * @author Glen Stampoultzis (glens at apache.org)
  */
 public final class TestSSTRecordSizeCalculator extends TestCase {
private static final String SMALL_STRING = "Small string";
private static final int COMPRESSED_PLAIN_STRING_OVERHEAD = 3;
private static final int OPTION_FIELD_SIZE = 1;
-   
+
private final IntMapper strings = new IntMapper<>();
 
+
+   /** standard record overhead: two shorts (record id plus data space 
size)*/
+   private static final int STD_RECORD_OVERHEAD = 2 * 
LittleEndianConsts.SHORT_SIZE;
+
+   /** SST overhead: the standard record overhead, plus the number of 
strings and the number of unique strings -- two ints */
+   private static final int SST_RECORD_OVERHEAD = STD_RECORD_OVERHEAD + 2 
* LittleEndianConsts.INT_SIZE;
+
+   /** how much data can we stuff into an SST record? That would be _max 
minus the standard SST record overhead */
+   private static final int MAX_DATA_SPACE = 
RecordInputStream.MAX_RECORD_DATA_SIZE - 8;
+
+
private void confirmSize(int expectedSize) {
ContinuableRecordOutput cro = 
ContinuableRecordOutput.createForCountingOnly();
SSTSerializer ss = new SSTSerializer(strings, 0, 0);
@@ -44,64 +55,64 @@ public final class TestSSTRecordSizeCalc
 
public void testBasic() {
strings.add(makeUnicodeString(SMALL_STRING));
-   confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+   confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ SMALL_STRING.length());
}
 
public void testBigStringAcrossUnicode() {
-   int bigString = SSTRecord.MAX_DATA_SPACE + 100;
+   int bigString = MAX_DATA_SPACE + 100;
strings.add(makeUnicodeString(bigString));
-   confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+   confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
-   + SSTRecord.MAX_DATA_SPACE
-   + SSTRecord.STD_RECORD_OVERHEAD
+   + MAX_DATA_SPACE
+   + STD_RECORD_OVERHEAD
+ OPTION_FIELD_SIZE
+ 100);
}
 
public void testPerfectFit() {
-   int perfectFit = SSTRecord.MAX_DATA_SPACE - 
COMPRESSED_PLAIN_STRING_OVERHEAD;
+   int perfectFit = MAX_DATA_SPACE - 
COMPRESSED_PLAIN_STRING_OVERHEAD;
strings.add(makeUnicodeString(perfectFit));
-   confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+   confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ perfectFit);
}
 
public void testJustOversized() {
-   int tooBig = SSTRecord.MAX_DATA_SPACE - 
COMPRESSED_PLAIN_STRING_OVERHEAD + 1;
+   int tooBig = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD 
+ 1;
strings.add(makeUnicodeString(tooBig));
-   confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+   confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ tooBig - 1
// continue record
-   + SSTRecord.STD_RECORD_OVERHEAD
+   + STD_RECORD_OVERHEAD
+ OPTION_FIELD_SIZE + 1);
 
}
 
public void testSecondStringStartsOnNewContinuation() {
-   int perfectFit = SSTRecord.MAX_DATA_SPACE - 
COMPRESSED_PLAIN_STRING_OVERHEAD;
+   int perfectFit = MAX_DATA_SPACE - 
COMPRESSED_PLAIN_STRING_OVERHEAD;
strings.add(makeUnicodeString(perfectFit));
strings.add(makeUnicodeString(SMALL_STRING));
-   confirmSize(SSTRecord.SST_RECORD_OVERHEAD
-  

svn commit: r1871911 [11/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/po

2019-12-22 Thread kiwiwings
Modified: 
poi/trunk/src/java/org/apache/poi/hssf/record/common/UnicodeString.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/common/UnicodeString.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/common/UnicodeString.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/common/UnicodeString.java Sun 
Dec 22 21:44:45 2019
@@ -18,368 +18,91 @@
 package org.apache.poi.hssf.record.common;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.util.stream.Collectors;
 
+import org.apache.poi.common.Duplicatable;
 import org.apache.poi.hssf.record.RecordInputStream;
 import org.apache.poi.hssf.record.cont.ContinuableRecordInput;
 import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
 import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
-import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.LittleEndianInput;
-import org.apache.poi.util.LittleEndianOutput;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
-import org.apache.poi.util.StringUtil;
+import org.apache.poi.util.Removal;
 
 /**
- * Title: Unicode String
- * Description:  Unicode String - just standard fields that are in several 
records.
- *   It is considered more desirable then repeating it in all of 
them.
- *   This is often called a XLUnicodeRichExtendedString in MS 
documentation.
- * REFERENCE:  PG 264 Microsoft Excel 97 Developer's Kit (ISBN: 
1-57231-498-2)
- * REFERENCE:  PG 951 Excel Binary File Format (.xls) Structure Specification 
v20091214 
+ * Unicode String - just standard fields that are in several records.
+ * It is considered more desirable then repeating it in all of them.
+ * This is often called a XLUnicodeRichExtendedString in MS documentation.
  */
-public class UnicodeString implements Comparable {
+public class UnicodeString implements Comparable, Duplicatable {
 private static final POILogger _logger = 
POILogFactory.getLogger(UnicodeString.class);
 
-//arbitrarily selected; may need to increase
-private static final int MAX_RECORD_LENGTH = 100_000;
-
+private static final BitField highByte  = BitFieldFactory.getInstance(0x1);
+// 0x2 is reserved
+private static final BitField extBit= BitFieldFactory.getInstance(0x4);
+private static final BitField richText  = BitFieldFactory.getInstance(0x8);
 
 private short field_1_charCount;
 private byte  field_2_optionflags;
 private Stringfield_3_string;
 private List   field_4_format_runs;
 private ExtRstfield_5_ext_rst;
-private static final BitField   highByte  = 
BitFieldFactory.getInstance(0x1);
-// 0x2 is reserved
-private static final BitField   extBit= 
BitFieldFactory.getInstance(0x4);
-private static final BitField   richText  = 
BitFieldFactory.getInstance(0x8);
-
-public static class FormatRun implements Comparable {
-final short _character;
-short _fontIndex;
-
-public FormatRun(short character, short fontIndex) {
-this._character = character;
-this._fontIndex = fontIndex;
-}
-
-public FormatRun(LittleEndianInput in) {
-this(in.readShort(), in.readShort());
-}
 
-public short getCharacterPos() {
-return _character;
-}
+private UnicodeString(UnicodeString other) {
+field_1_charCount = other.field_1_charCount;
+field_2_optionflags = other.field_2_optionflags;
+field_3_string = other.field_3_string;
+field_4_format_runs =  (other.field_4_format_runs == null) ? null :
+
other.field_4_format_runs.stream().map(FormatRun::new).collect(Collectors.toList());
+field_5_ext_rst = (other.field_5_ext_rst == null) ? null : 
other.field_5_ext_rst.copy();
+}
 
-public short getFontIndex() {
-return _fontIndex;
-}
+public UnicodeString(String str) {
+  setString(str);
+}
 
-public boolean equals(Object o) {
-if (!(o instanceof FormatRun)) {
-return false;
-}
-FormatRun other = ( FormatRun ) o;
+/**
+ * construct a unicode string record and fill its fields, ID is ignored
+ * @param in the RecordInputstream to read the record from
+ */
+public UnicodeString(RecordInputStream in) {
+field_1_charCount   = in.readShort();
+field_2_optionflags = in.readByte();
 
-return _character == other._character && _fontIndex == 
other._fontIndex;
+int runCount = 0;
+int extensionLength = 0;
+//Read the number of rich runs if rich text.
+if (isRichText()) {
+

svn commit: r1871911 [5/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/LeftMarginRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/LeftMarginRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/LeftMarginRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/LeftMarginRecord.java Sun Dec 
22 21:44:45 2019
@@ -18,18 +18,23 @@
 package org.apache.poi.hssf.record;
 
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
  * Record for the left margin.
  */
-public final class LeftMarginRecord extends StandardRecord implements Margin, 
Cloneable {
-public final static short sid = 0x0026;
+public final class LeftMarginRecord extends StandardRecord implements Margin {
+public static final short sid = 0x0026;
 private double field_1_margin;
 
-public LeftMarginRecord(){}
+public LeftMarginRecord() {}
 
-public LeftMarginRecord(RecordInputStream in)
-{
+public LeftMarginRecord(LeftMarginRecord other) {
+super(other);
+field_1_margin = other.field_1_margin;
+}
+
+public LeftMarginRecord(RecordInputStream in) {
 field_1_margin = in.readDouble();
 }
 
@@ -70,9 +75,15 @@ public final class LeftMarginRecord exte
 }
 
 @Override
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
 public LeftMarginRecord clone() {
-LeftMarginRecord rec = new LeftMarginRecord();
-rec.field_1_margin = this.field_1_margin;
-return rec;
+return copy();
+}
+
+@Override
+public LeftMarginRecord copy() {
+return new LeftMarginRecord(this);
 }
-} 
\ No newline at end of file
+}
\ No newline at end of file

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/MMSRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/MMSRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/MMSRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/MMSRecord.java Sun Dec 22 
21:44:45 2019
@@ -15,38 +15,36 @@
See the License for the specific language governing permissions and
limitations under the License.
  */
-
+
 
 package org.apache.poi.hssf.record;
 
 import org.apache.poi.util.LittleEndianOutput;
 
 /**
- * Title: MMS Record
- * Description: defines how many add menu and del menu options are stored
- *in the file. Should always be set to 0 for HSSF 
workbooks
- * REFERENCE:  PG 328 Microsoft Excel 97 Developer's Kit (ISBN: 
1-57231-498-2)
- * @author Andrew C. Oliver (acoliver at apache dot org)
+ * defines how many add menu and del menu options are stored in the file.
+ * Should always be set to 0 for HSSF workbooks.
+ *
  * @version 2.0-pre
  */
 
-public final class MMSRecord
-extends StandardRecord
-{
-public final static short sid = 0xC1;
-private byte  field_1_addMenuCount;   // = 0;
-private byte  field_2_delMenuCount;   // = 0;
+public final class MMSRecord extends StandardRecord {
+public static final short sid = 0xC1;
+private byte field_1_addMenuCount;
+private byte field_2_delMenuCount;
 
-public MMSRecord()
-{
+public MMSRecord() {}
+
+public MMSRecord(MMSRecord other) {
+field_1_addMenuCount = other.field_1_addMenuCount;
+field_2_delMenuCount = other.field_2_delMenuCount;
 }
 
-public MMSRecord(RecordInputStream in)
-{
+public MMSRecord(RecordInputStream in) {
 if (in.remaining()==0) {
 return;
 }
-
+
 field_1_addMenuCount = in.readByte();
 field_2_delMenuCount = in.readByte();
 }
@@ -117,4 +115,9 @@ public final class MMSRecord
 {
 return sid;
 }
+
+@Override
+public MMSRecord copy() {
+return new MMSRecord(this);
+}
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java Sun Dec 
22 21:44:45 2019
@@ -17,22 +17,33 @@
 
 package org.apache.poi.hssf.record;
 
+import java.util.stream.Stream;
+
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.CellRangeAddressList;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
- * Title: Merged Cells Record 

svn commit: r1871911 [13/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/po

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java Sun Dec 22 
21:44:45 2019
@@ -24,9 +24,6 @@ import org.apache.poi.util.LittleEndianO
 /**
  * Number Stores a floating point value in a formula value stored in a 8 byte
  * field using IEEE notation
- * 
- * @author Avik Sengupta
- * @author Jason Height (jheight at chariot dot net dot au)
  */
 public final class NumberPtg extends ScalarConstantPtg {
public final static int SIZE = 9;
@@ -41,7 +38,7 @@ public final class NumberPtg extends Sca
 * Create a NumberPtg from a string representation of the number Number
 * format is not checked, it is expected to be validated in the parser 
that
 * calls this method.
-* 
+*
 * @param value String representation of a floating point number
 */
public NumberPtg(String value) {
@@ -68,4 +65,9 @@ public final class NumberPtg extends Sca
public String toFormulaString() {
return NumberToTextConverter.toText(field_1_value);
}
+
+   @Override
+   public NumberPtg copy() {
+   return this;
+   }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperandPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperandPtg.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperandPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperandPtg.java Sun Dec 22 
21:44:45 2019
@@ -17,10 +17,13 @@
 
 package org.apache.poi.ss.formula.ptg;
 
-/**
- * @author Josh Micich
- */
-public abstract class OperandPtg extends Ptg implements Cloneable {
+public abstract class OperandPtg extends Ptg {
+
+   protected OperandPtg() {}
+
+   protected OperandPtg(OperandPtg other) {
+   super(other);
+   }
 
/**
 * All Operand {@link Ptg}s are classified ('relative', 'value', 
'array')
@@ -28,11 +31,7 @@ public abstract class OperandPtg extends
public final boolean isBaseToken() {
return false;
}
-   public final OperandPtg copy() {
-   try {
-   return (OperandPtg) clone();
-   } catch (CloneNotSupportedException e) {
-   throw new RuntimeException(e);
-   }
-   }
+
+   @Override
+   public abstract OperandPtg copy();
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java Sun Dec 
22 21:44:45 2019
@@ -26,19 +26,21 @@ public abstract class OperationPtg exten
 public final static int TYPE_BINARY   = 1;
 public final static int TYPE_FUNCTION = 2;
 
+protected OperationPtg() {}
+
 /**
  *  returns a string representation of the operations
- *  the length of the input array should equal the number returned by 
+ *  the length of the input array should equal the number returned by
  *  @see #getNumberOfOperands
- *  
+ *
  */
 public abstract String toFormulaString(String[] operands);
-
+
 /**
  * The number of operands expected by the operations
  */
 public abstract int getNumberOfOperands();
-
+
 public byte getDefaultOperandClass() {
 return Ptg.CLASS_VALUE;
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java Sun 
Dec 22 21:44:45 2019
@@ -23,18 +23,13 @@ import org.apache.poi.util.LittleEndianO
  * While formula tokens are stored in RPN order and thus do not need 
parenthesis
  * for precedence reasons, Parenthesis tokens ARE written to ensure that user
  * entered parenthesis are displayed as-is on reading back
- * 
- * Avik Sengupta li...@aviksengupta.com Andrew C. Oliver (acoliver at
- * apache dot org)
- * 
- * @author Jason Height 

svn commit: r1871911 [1/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec 22 21:44:45 2019
New Revision: 1871911

URL: http://svn.apache.org/viewvc?rev=1871911=rev
Log:
#64004 - Replace clone() with copy constructor - mainly HSSF classes

Added:
poi/trunk/src/java/org/apache/poi/common/Duplicatable.java   (with props)

poi/trunk/src/java/org/apache/poi/hssf/record/FormulaSpecialCachedValue.java   
(with props)
poi/trunk/src/java/org/apache/poi/hssf/record/common/ExtRst.java   (with 
props)
poi/trunk/src/java/org/apache/poi/hssf/record/common/FormatRun.java   (with 
props)
poi/trunk/src/java/org/apache/poi/hssf/record/common/PhRun.java   (with 
props)
Modified:
poi/trunk/src/integrationtest/org/apache/poi/TestAllFiles.java

poi/trunk/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java
poi/trunk/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java
poi/trunk/src/java/org/apache/poi/ddf/UnknownEscherRecord.java

poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java

poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java

poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java

poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java
poi/trunk/src/java/org/apache/poi/hssf/model/RecordStream.java

poi/trunk/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ArrayRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/AutoFilterInfoRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BOFRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BackupRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BlankRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BookBoolRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BoolErrRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BottomMarginRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFHeader12Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CRNCountRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CalcCountRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CalcModeRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CellRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CodepageRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ColumnInfoRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CommonObjectDataSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ContinueRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CountryRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DBCellRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DConRefRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DSFRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DVALRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DVRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DateWindow1904Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/DefaultColWidthRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DefaultRowHeightRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DeltaRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DimensionsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DrawingRecord.java

poi/trunk/src/java/org/apache/poi/hssf/record/DrawingRecordForBiffViewer.java
poi/trunk/src/java/org/apache/poi/hssf/record/DrawingSelectionRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/EOFRecord.java

poi/trunk/src/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/EndSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/EscherAggregate.java
poi/trunk/src/java/org/apache/poi/hssf/record/ExtSSTRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ExtendedFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ExternSheetRecord.java

svn commit: r1871911 [9/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java Sun 
Dec 22 21:44:45 2019
@@ -23,31 +23,34 @@ import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
  * The frame record indicates whether there is a border around the displayed 
text of a chart.
  */
-public final class FrameRecord extends StandardRecord implements Cloneable {
-public final static short sid  = 0x1032;
+public final class FrameRecord extends StandardRecord {
+public static final short sid  = 0x1032;
+public static final short   BORDER_TYPE_REGULAR= 0;
+public static final short   BORDER_TYPE_SHADOW = 1;
 
 private static final BitField autoSize = 
BitFieldFactory.getInstance(0x1);
 private static final BitField autoPosition = 
BitFieldFactory.getInstance(0x2);
 
-private  short  field_1_borderType;
-public final static short   BORDER_TYPE_REGULAR= 0;
-public final static short   BORDER_TYPE_SHADOW = 1;
-private  short  field_2_options;
+private short field_1_borderType;
+private short field_2_options;
 
 
-public FrameRecord()
-{
+public FrameRecord() {}
 
+public FrameRecord(FrameRecord other) {
+super(other);
+field_1_borderType = other.field_1_borderType;
+field_2_options = other.field_2_options;
 }
 
-public FrameRecord(RecordInputStream in)
-{
-field_1_borderType = in.readShort();
-field_2_options= in.readShort();
+public FrameRecord(RecordInputStream in) {
+field_1_borderType = in.readShort();
+field_2_options = in.readShort();
 }
 
 public String toString()
@@ -58,13 +61,13 @@ public final class FrameRecord extends S
 buffer.append(".borderType   = ")
 .append("0x").append(HexDump.toHex(  getBorderType ()))
 .append(" (").append( getBorderType() ).append(" )");
-buffer.append(System.getProperty("line.separator")); 
+buffer.append(System.getProperty("line.separator"));
 buffer.append(".options  = ")
 .append("0x").append(HexDump.toHex(  getOptions ()))
 .append(" (").append( getOptions() ).append(" )");
-buffer.append(System.getProperty("line.separator")); 
-buffer.append(" .autoSize = 
").append(isAutoSize()).append('\n'); 
-buffer.append(" .autoPosition = 
").append(isAutoPosition()).append('\n'); 
+buffer.append(System.getProperty("line.separator"));
+buffer.append(" .autoSize = 
").append(isAutoSize()).append('\n');
+buffer.append(" .autoPosition = 
").append(isAutoPosition()).append('\n');
 
 buffer.append("[/FRAME]\n");
 return buffer.toString();
@@ -85,21 +88,22 @@ public final class FrameRecord extends S
 }
 
 @Override
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
 public FrameRecord clone() {
-FrameRecord rec = new FrameRecord();
-
-rec.field_1_borderType = field_1_borderType;
-rec.field_2_options = field_2_options;
-return rec;
+return copy();
 }
 
-
-
+@Override
+public FrameRecord copy() {
+return new FrameRecord(this);
+}
 
 /**
  * Get the border type field for the Frame record.
  *
- * @return  One of 
+ * @return  One of
  *BORDER_TYPE_REGULAR
  *BORDER_TYPE_SHADOW
  */
@@ -112,7 +116,7 @@ public final class FrameRecord extends S
  * Set the border type field for the Frame record.
  *
  * @param field_1_borderType
- *One of 
+ *One of
  *BORDER_TYPE_REGULAR
  *BORDER_TYPE_SHADOW
  */

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java Sun 
Dec 22 21:44:45 2019
@@ -23,12 +23,13 @@ import org.apache.poi.util.BitField;
 import 

svn commit: r1871911 [7/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/WSBoolRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/WSBoolRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/WSBoolRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/WSBoolRecord.java Sun Dec 22 
21:44:45 2019
@@ -20,36 +20,50 @@ package org.apache.poi.hssf.record;
 import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
- * Title:WSBOOL (0x0081) (called SHEETPR in OOO doc)
- * Description:  stores workbook settings  (aka its a big "everything we didn't
- *   put somewhere else")
- * REFERENCE:  PG 425 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)
+ * Stores workbook settings (aka its a big "everything we didn't put somewhere 
else")
  */
 public final class WSBoolRecord extends StandardRecord {
-public final static short sid = 0x0081;
-private byte  field_1_wsbool; // crappy names are 
because this is really one big short field (2byte)
-private byte  field_2_wsbool; // but the docs 
inconsistently use it as 2 separate bytes
-
-// I decided to be consistent in this way.
-private static final BitField autobreaks= 
BitFieldFactory.getInstance(0x01); // are automatic page breaks visible
+public static final short sid = 0x0081;
+// are automatic page breaks visible
+private static final BitField autobreaks= 
BitFieldFactory.getInstance(0x01);
 
 // bits 1 to 3 unused
-private static final BitField dialog= 
BitFieldFactory.getInstance(0x10); // is sheet dialog sheet
-private static final BitField applystyles   = 
BitFieldFactory.getInstance(0x20); // whether to apply automatic styles to 
outlines
-private static final BitField rowsumsbelow  = 
BitFieldFactory.getInstance(0x40); // whether summary rows will appear below 
detail in outlines
-private static final BitField rowsumsright  = 
BitFieldFactory.getInstance(0x80); // whether summary rows will appear right of 
the detail in outlines
-private static final BitField fittopage = 
BitFieldFactory.getInstance(0x01); // whether to fit stuff to the page
+// is sheet dialog sheet
+private static final BitField dialog= 
BitFieldFactory.getInstance(0x10);
+// whether to apply automatic styles to outlines
+private static final BitField applystyles   = 
BitFieldFactory.getInstance(0x20);
+// whether summary rows will appear below detail in outlines
+private static final BitField rowsumsbelow  = 
BitFieldFactory.getInstance(0x40);
+// whether summary rows will appear right of the detail in outlines
+private static final BitField rowsumsright  = 
BitFieldFactory.getInstance(0x80);
+// whether to fit stuff to the page
+private static final BitField fittopage = 
BitFieldFactory.getInstance(0x01);
 
 // bit 2 reserved
-private static final BitField displayguts   = 
BitFieldFactory.getInstance(0x06); // whether to display outline symbols (in 
the gutters)
+// whether to display outline symbols (in the gutters)
+private static final BitField displayguts   = 
BitFieldFactory.getInstance(0x06);
 
 // bits 4-5 reserved
-private static final BitField alternateexpression = 
BitFieldFactory.getInstance(0x40); // whether to use alternate expression eval
-private static final BitField alternateformula= 
BitFieldFactory.getInstance(0x80); // whether to use alternate formula entry
-
-public WSBoolRecord() {
+// whether to use alternate expression eval
+private static final BitField alternateexpression = 
BitFieldFactory.getInstance(0x40);
+// whether to use alternate formula entry
+private static final BitField alternateformula= 
BitFieldFactory.getInstance(0x80);
+
+// crappy names are because this is really one big short field (2byte)
+private byte field_1_wsbool;
+// but the docs inconsistently use it as 2 separate bytes
+private byte field_2_wsbool;
+
+
+public WSBoolRecord() {}
+
+public WSBoolRecord(WSBoolRecord other) {
+super(other);
+field_1_wsbool = other.field_1_wsbool;
+field_2_wsbool = other.field_2_wsbool;
 }
 
 public WSBoolRecord(RecordInputStream in) {
@@ -292,10 +306,16 @@ public final class WSBoolRecord extends
 return sid;
 }
 
-public Object clone() {
-  WSBoolRecord rec = new WSBoolRecord();
-  rec.field_1_wsbool = field_1_wsbool;
-  rec.field_2_wsbool = field_2_wsbool;
-  return rec;
+@Override
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
+public WSBoolRecord clone() {
+return copy();
+}
+

svn commit: r1871911 [6/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/RKRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/RKRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/RKRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/RKRecord.java Sun Dec 22 
21:44:45 2019
@@ -19,30 +19,31 @@ package org.apache.poi.hssf.record;
 
 import org.apache.poi.hssf.util.RKUtil;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
- * Title:RK Record (0x027E)
- * Description:  An internal 32 bit number with the two most significant bits
- *   storing the type.  This is part of a bizarre scheme to save 
disk
- *   space and memory (gee look at all the other whole records that
- *   are in the file just "cause"..,far better to waste processor
- *   cycles on this then leave on of those "valuable" records 
out).
+ * An internal 32 bit number with the two most significant bits storing the 
type.
+ * This is part of a bizarre scheme to save disk space and memory (gee look at 
all the other whole
+ * records that are in the file just "cause".., far better to waste processor 
cycles on this then
+ * leave on of those "valuable" records out).
  * We support this in READ-ONLY mode.  HSSF converts these to NUMBER records
  *
- * REFERENCE:  PG 376 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)
- * 
  * @see org.apache.poi.hssf.record.NumberRecord
  */
 public final class RKRecord extends CellRecord {
-public final static short sid  = 0x027E;
-public final static short RK_IEEE_NUMBER   = 0;
-public final static short RK_IEEE_NUMBER_TIMES_100 = 1;
-public final static short RK_INTEGER   = 2;
-public final static short RK_INTEGER_TIMES_100 = 3;
+public static final short sid  = 0x027E;
+public static final short RK_IEEE_NUMBER   = 0;
+public static final short RK_IEEE_NUMBER_TIMES_100 = 1;
+public static final short RK_INTEGER   = 2;
+public static final short RK_INTEGER_TIMES_100 = 3;
+
 private int field_4_rk_number;
 
-private RKRecord() {
-   // fields uninitialised
+private RKRecord() {}
+
+public RKRecord(RKRecord other) {
+super(other);
+field_4_rk_number = other.field_4_rk_number;
 }
 
 public RKRecord(RecordInputStream in) {
@@ -97,10 +98,15 @@ public final class RKRecord extends Cell
 }
 
 @Override
-public Object clone() {
-  RKRecord rec = new RKRecord();
-  copyBaseFields(rec);
-  rec.field_4_rk_number = field_4_rk_number;
-  return rec;
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
+public RKRecord clone() {
+return copy();
+}
+
+@Override
+public RKRecord copy() {
+return new RKRecord(this);
 }
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/RecalcIdRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/RecalcIdRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/RecalcIdRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/RecalcIdRecord.java Sun Dec 
22 21:44:45 2019
@@ -21,18 +21,16 @@ import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndianOutput;
 
 /**
- * Title: Recalc Id Record (0x01C1)
- * Description:  This record contains an ID that marks when a worksheet was 
last
- *   recalculated. It's an optimization Excel uses to determine if 
it
- *   needs to  recalculate the spreadsheet when it's opened. So 
far, only
- *   the two engine ids {@code 0x80 0x38 0x01 0x00}
- *   and {@code 0x60 0x69 0x01 0x00} have been seen.
- *   A value of {@code 0x00} will cause Excel to recalculate
- *   all formulas on the next load.
- * REFERENCE:  http://chicago.sourceforge.net/devel/docs/excel/biff8.html
+ * This record contains an ID that marks when a worksheet was last 
recalculated.
+ * It's an optimization Excel uses to determine if it needs to  recalculate 
the spreadsheet
+ * when it's opened. So far, only the two engine ids {@code 0x80 0x38 0x01 
0x00} and
+ * {@code 0x60 0x69 0x01 0x00} have been seen. A value of {@code 0x00} will 
cause Excel
+ * to recalculate all formulas on the next load.
+ *
+ * @see http://chicago.sourceforge.net/devel/docs/excel/biff8.html;>Chicago biff8 
docs
  */
 public final class RecalcIdRecord extends StandardRecord {
-public final static short sid = 0x01C1;
+public static final short sid = 0x01C1;
 private final int _reserved0;
 
 /**
@@ -49,6 

svn commit: r1871911 [3/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/DVRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/DVRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/DVRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/DVRecord.java Sun Dec 22 
21:44:45 2019
@@ -25,64 +25,77 @@ import org.apache.poi.ss.util.CellRangeA
 import org.apache.poi.ss.util.CellRangeAddressList;
 import org.apache.poi.util.BitField;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 import org.apache.poi.util.StringUtil;
 
 /**
- * Title:DATAVALIDATION Record (0x01BE)
- * Description:  This record stores data validation settings and a list of 
cell ranges
- *   which contain these settings. The data validation settings of 
a sheet
- *   are stored in a sequential list of DV records. This list is 
followed by
- *   DVAL record(s)
+ * This record stores data validation settings and a list of cell ranges which 
contain these settings.
+ * The data validation settings of a sheet are stored in a sequential list of 
DV records.
+ * This list is followed by DVAL record(s)
  */
-public final class DVRecord extends StandardRecord implements Cloneable {
-   public final static short sid = 0x01BE;
-   
+public final class DVRecord extends StandardRecord {
+   public static final short sid = 0x01BE;
+
/** the unicode string used for error/prompt title/text when not 
present */
private static final UnicodeString NULL_TEXT_STRING = new 
UnicodeString("\0");
 
+   /**
+* Option flags field
+*
+* @see HSSFDataValidation utility class
+*/
+   private static final BitField opt_data_type= new 
BitField(0x000F);
+   private static final BitField opt_error_style  = new 
BitField(0x0070);
+   private static final BitField opt_string_list_formula  = new 
BitField(0x0080);
+   private static final BitField opt_empty_cell_allowed   = new 
BitField(0x0100);
+   private static final BitField opt_suppress_dropdown_arrow  = new 
BitField(0x0200);
+   private static final BitField opt_show_prompt_on_cell_selected = new 
BitField(0x0004);
+   private static final BitField opt_show_error_on_invalid_value  = new 
BitField(0x0008);
+   private static final BitField opt_condition_operator   = new 
BitField(0x0070);
+
/** Option flags */
private int _option_flags;
/** Title of the prompt box, cannot be longer than 32 chars */
-   private UnicodeString _promptTitle;
+   private final UnicodeString _promptTitle;
/** Title of the error box, cannot be longer than 32 chars */
-   private UnicodeString _errorTitle;
+   private final UnicodeString _errorTitle;
/** Text of the prompt box, cannot be longer than 255 chars */
-   private UnicodeString _promptText;
+   private final UnicodeString _promptText;
/** Text of the error box, cannot be longer than 255 chars */
-   private UnicodeString _errorText;
+   private final UnicodeString _errorText;
/** Not used - Excel seems to always write 0x3FE0 */
private short _not_used_1 = 0x3FE0;
/** Formula data for first condition (RPN token array without size 
field) */
-   private Formula _formula1;
+   private final Formula _formula1;
/** Not used - Excel seems to always write 0x */
@SuppressWarnings("RedundantFieldInitialization")
private short _not_used_2 = 0x;
/** Formula data for second condition (RPN token array without size 
field) */
-   private Formula _formula2;
+   private final Formula _formula2;
/** Cell range address list with all affected ranges */
-   private CellRangeAddressList _regions;
+   private final CellRangeAddressList _regions;
 
-   /**
-* Option flags field
-* 
-* @see HSSFDataValidation utility class
-*/
-   private static final BitField opt_data_type= new 
BitField(0x000F);
-   private static final BitField opt_error_style  = new 
BitField(0x0070);
-   private static final BitField opt_string_list_formula  = new 
BitField(0x0080);
-   private static final BitField opt_empty_cell_allowed   = new 
BitField(0x0100);
-   private static final BitField opt_suppress_dropdown_arrow  = new 
BitField(0x0200);
-   private static final BitField opt_show_prompt_on_cell_selected = new 
BitField(0x0004);
-   private static final BitField opt_show_error_on_invalid_value  = new 
BitField(0x0008);
-   private static final BitField opt_condition_operator  

svn commit: r1871911 [2/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java Sun Dec 22 
21:44:45 2019
@@ -21,20 +21,28 @@ import org.apache.poi.ss.util.CellRangeA
 import org.apache.poi.ss.util.CellRangeAddressList;
 import org.apache.poi.ss.util.CellRangeUtil;
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 
 /**
  * Parent of Conditional Formatting Header records,
  *  {@link CFHeaderRecord} and {@link CFHeader12Record}.
  */
-public abstract class CFHeaderBase extends StandardRecord implements Cloneable 
{
+public abstract class CFHeaderBase extends StandardRecord {
 private int field_1_numcf;
 private int field_2_need_recalculation_and_id;
 private CellRangeAddress field_3_enclosing_cell_range;
 private CellRangeAddressList field_4_cell_ranges;
 
-/** Creates new CFHeaderBase */
-protected CFHeaderBase() {
+protected CFHeaderBase() {}
+
+protected CFHeaderBase(CFHeaderBase other) {
+super(other);
+field_1_numcf = other.field_1_numcf;
+field_2_need_recalculation_and_id = 
other.field_2_need_recalculation_and_id;
+field_3_enclosing_cell_range = 
other.field_3_enclosing_cell_range.copy();
+field_4_cell_ranges = other.field_4_cell_ranges.copy();
 }
+
 protected CFHeaderBase(CellRangeAddress[] regions, int nRules) {
 CellRangeAddress[] mergeCellRanges = 
CellRangeUtil.mergeCellRanges(regions);
 setCellRanges(mergeCellRanges);
@@ -97,7 +105,7 @@ public abstract class CFHeaderBase exten
 }
 
 /**
- * Set cell ranges list to a single cell range and 
+ * Set cell ranges list to a single cell range and
  * modify the enclosing cell range accordingly.
  * @param cellRanges - list of CellRange objects
  */
@@ -151,13 +159,12 @@ public abstract class CFHeaderBase exten
 field_4_cell_ranges.serialize(out);
 }
 
-protected void copyTo(CFHeaderBase result) {
-result.field_1_numcf = field_1_numcf;
-result.field_2_need_recalculation_and_id = 
field_2_need_recalculation_and_id;
-result.field_3_enclosing_cell_range = 
field_3_enclosing_cell_range.copy();
-result.field_4_cell_ranges = field_4_cell_ranges.copy();
-}
+@Override
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
+public abstract CFHeaderBase clone();
 
 @Override
-public abstract CFHeaderBase clone(); // NOSONAR
+public abstract CFHeaderBase copy();
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java Sun Dec 
22 21:44:45 2019
@@ -18,19 +18,24 @@
 package org.apache.poi.hssf.record;
 
 import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.util.Removal;
 
 /**
  * Conditional Formatting Header record CFHEADER (0x01B0).
  * Used to describe a {@link CFRuleRecord}.
  * @see CFHeader12Record
  */
-public final class CFHeaderRecord extends CFHeaderBase implements Cloneable {
+public final class CFHeaderRecord extends CFHeaderBase {
 public static final short sid = 0x01B0;
 
-/** Creates new CFHeaderRecord */
 public CFHeaderRecord() {
 createEmpty();
 }
+
+public CFHeaderRecord(CFHeaderRecord other) {
+super(other);
+}
+
 public CFHeaderRecord(CellRangeAddress[] regions, int nRules) {
 super(regions, nRules);
 }
@@ -48,9 +53,15 @@ public final class CFHeaderRecord extend
 }
 
 @Override
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
 public CFHeaderRecord clone() {
-CFHeaderRecord result = new CFHeaderRecord();
-super.copyTo(result);
-return result;
+return copy();
+}
+
+@Override
+public CFHeaderRecord copy() {
+return new CFHeaderRecord(this);
 }
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java 

svn commit: r1871911 [4/15] - in /poi/trunk/src: integrationtest/org/apache/poi/ integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/ java/org/apache/poi/ddf/ java/org/apache/poi

2019-12-22 Thread kiwiwings
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/FileSharingRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/FileSharingRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/FileSharingRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/FileSharingRecord.java Sun 
Dec 22 21:44:45 2019
@@ -18,17 +18,16 @@
 package org.apache.poi.hssf.record;
 
 import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.Removal;
 import org.apache.poi.util.StringUtil;
 
 /**
- * Title:FILESHARING (0x005B) 
- * Description:  stores the encrypted readonly for a workbook (write protect) 
- * This functionality is accessed from the options dialog box available when 
performing 'Save As'.
- * REFERENCE:  PG 314 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)
+ * Stores the encrypted readonly for a workbook (write protect).
+ * This functionality is accessed from the options dialog box available when 
performing 'Save As'.
  */
-public final class FileSharingRecord extends StandardRecord implements 
Cloneable {
+public final class FileSharingRecord extends StandardRecord {
 
-public final static short sid = 0x005B;
+public static final short sid = 0x005B;
 private short field_1_readonly;
 private short field_2_password;
 private byte  field_3_username_unicode_options;
@@ -36,14 +35,22 @@ public final class FileSharingRecord ext
 
 public FileSharingRecord() {}
 
+public FileSharingRecord(FileSharingRecord other) {
+super(other);
+field_1_readonly = other.field_1_readonly;
+field_2_password = other.field_2_password;
+field_3_username_unicode_options = 
other.field_3_username_unicode_options;
+field_3_username_value = other.field_3_username_value;
+}
+
 public FileSharingRecord(RecordInputStream in) {
 field_1_readonly = in.readShort();
 field_2_password = in.readShort();
-
+
 int nameLen = in.readShort();
-
+
 if(nameLen > 0) {
-// TODO - Current examples(3) from junits only have zero length 
username. 
+// TODO - Current examples(3) from junits only have zero length 
username.
 field_3_username_unicode_options = in.readByte();
 field_3_username_value = in.readCompressedUnicode(nameLen);
 } else {
@@ -137,11 +144,15 @@ public final class FileSharingRecord ext
 }
 
 @Override
+@SuppressWarnings("squid:S2975")
+@Deprecated
+@Removal(version = "5.0.0")
 public FileSharingRecord clone() {
-  FileSharingRecord clone = new FileSharingRecord();
-  clone.setReadOnly(field_1_readonly);
-  clone.setPassword(field_2_password);
-  clone.setUsername(field_3_username_value);
-  return clone;
+return copy();
+}
+
+@Override
+public FileSharingRecord copy() {
+  return new FileSharingRecord(this);
 }
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/FnGroupCountRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/FnGroupCountRecord.java?rev=1871911=1871910=1871911=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/FnGroupCountRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/FnGroupCountRecord.java Sun 
Dec 22 21:44:45 2019
@@ -15,35 +15,32 @@
See the License for the specific language governing permissions and
limitations under the License.
  */
-
+
 
 package org.apache.poi.hssf.record;
 
 import org.apache.poi.util.LittleEndianOutput;
 
 /**
- * Title: Function Group Count Record
- * Description:  Number of built in function groups in the current version of 
the
- *   Spreadsheet (probably only used on Windoze)
- * REFERENCE:  PG 315 Microsoft Excel 97 Developer's Kit (ISBN: 
1-57231-498-2)
- * @author Andrew C. Oliver (acoliver at apache dot org)
+ * umber of built in function groups in the current version of the Spreadsheet 
(probably only used on Windows)
+ *
  * @version 2.0-pre
  */
-
-public final class FnGroupCountRecord
-extends StandardRecord
-{
-public final static short sid   = 0x9c;
+public final class FnGroupCountRecord extends StandardRecord {
+public static final short sid   = 0x9c;
 
 /**
  * suggested default (14 dec)
  */
 
-public final static short COUNT = 14;
+public static final short COUNT = 14;
 private short field_1_count;
 
-public FnGroupCountRecord()
-{
+public FnGroupCountRecord() {}
+
+public FnGroupCountRecord(FnGroupCountRecord other) {
+super(other);
+field_1_count = 

svn commit: r1871563 - in /poi/trunk/src: java/org/apache/poi/ddf/ scratchpad/src/org/apache/poi/hslf/record/ testcases/org/apache/poi/ddf/

2019-12-14 Thread kiwiwings
Author: kiwiwings
Date: Sat Dec 14 23:44:26 2019
New Revision: 1871563

URL: http://svn.apache.org/viewvc?rev=1871563=rev
Log:
#64004 - Replace clone() with copy constructor

Modified:
poi/trunk/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherBitmapBlip.java
poi/trunk/src/java/org/apache/poi/ddf/EscherBlipRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherClientDataRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherDgRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherDggRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java
poi/trunk/src/java/org/apache/poi/ddf/EscherOptRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherPictBlip.java
poi/trunk/src/java/org/apache/poi/ddf/EscherRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherSpRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherSpgrRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherTertiaryOptRecord.java
poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java
poi/trunk/src/java/org/apache/poi/ddf/UnknownEscherRecord.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/EscherPlaceholder.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/HSLFEscherClientDataRecord.java
poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java
poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDump.java

Modified: poi/trunk/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java?rev=1871563=1871562=1871563=diff
==
--- poi/trunk/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java Sat Dec 
14 23:44:26 2019
@@ -30,13 +30,20 @@ import org.apache.poi.util.Removal;
  * Common abstract class for {@link EscherOptRecord} and
  * {@link EscherTertiaryOptRecord}
  */
-public abstract class AbstractEscherOptRecord extends EscherRecord
-{
+public abstract class AbstractEscherOptRecord extends EscherRecord {
 private final List properties = new ArrayList<>();
 
+protected AbstractEscherOptRecord() {}
+
+protected AbstractEscherOptRecord(AbstractEscherOptRecord other) {
+super(other);
+properties.addAll(other.properties);
+}
+
+
 /**
  * Add a property to this record.
- * 
+ *
  * @param prop the escher property to add
  */
 public void addEscherProperty( EscherProperty prop )
@@ -60,7 +67,7 @@ public abstract class AbstractEscherOptR
 
 /**
  * The list of properties stored by this record.
- * 
+ *
  * @return the list of properties
  */
 public List getEscherProperties()
@@ -70,7 +77,7 @@ public abstract class AbstractEscherOptR
 
 /**
  * The list of properties stored by this record.
- * 
+ *
  * @param index the ordinal index of the property
  * @return the escher property
  */
@@ -79,7 +86,7 @@ public abstract class AbstractEscherOptR
 return properties.get( index );
 }
 
-
+
 private int getPropertiesSize()
 {
 int totalSize = 0;
@@ -164,4 +171,7 @@ public abstract class AbstractEscherOptR
 "properties", this::getEscherProperties
 );
 }
+
+@Override
+public abstract AbstractEscherOptRecord copy();
 }

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java?rev=1871563=1871562=1871563=diff
==
--- poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java Sat Dec 14 
23:44:26 2019
@@ -58,7 +58,25 @@ public final class EscherBSERecord exten
 public EscherBSERecord() {
 setRecordId(RECORD_ID);
 }
-
+
+public EscherBSERecord(EscherBSERecord other) {
+super(other);
+
+field_1_blipTypeWin32 = other.field_1_blipTypeWin32;
+field_2_blipTypeMacOS = other.field_2_blipTypeMacOS;
+System.arraycopy(other.field_3_uid, 0, field_3_uid, 0, 
field_3_uid.length);
+field_4_tag = other.field_4_tag;
+field_5_size = other.field_5_size;
+field_6_ref = other.field_6_ref;
+field_7_offset = other.field_7_offset;
+field_8_usage = oth

svn commit: r1871121 - /poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java

2019-12-09 Thread kiwiwings
Author: kiwiwings
Date: Tue Dec 10 07:18:21 2019
New Revision: 1871121

URL: http://svn.apache.org/viewvc?rev=1871121=rev
Log:
fix typo

Modified:

poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java?rev=1871121=1871120=1871121=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java 
Tue Dec 10 07:18:21 2019
@@ -85,7 +85,7 @@ public final class TestHSSFPictureData e
 }
 }
 } catch (IIOException e) {
-Assume.assumeFalse(e.getMessage().contains("IIO Can't create cache 
file"));
+Assume.assumeFalse(e.getMessage().contains("Can't create cache 
file"));
 throw e;
 }
 }
@@ -110,7 +110,7 @@ public final class TestHSSFPictureData e
 assertEquals(HSSFWorkbook.PICTURE_TYPE_PNG, pict.getFormat());
 assertEquals("image/png", pict.getMimeType());
 } catch (IIOException e) {
-Assume.assumeFalse(e.getMessage().contains("IIO Can't create cache 
file"));
+Assume.assumeFalse(e.getMessage().contains("Can't create cache 
file"));
 throw e;
 }
 }



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1871111 - in /poi/trunk/sonar: ooxml-schema-security/pom.xml pom.xml

2019-12-09 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec  9 23:56:13 2019
New Revision: 187

URL: http://svn.apache.org/viewvc?rev=187=rev
Log:
Provide XAdES schemas locally, because of connection timeouts

Modified:
poi/trunk/sonar/ooxml-schema-security/pom.xml
poi/trunk/sonar/pom.xml

Modified: poi/trunk/sonar/ooxml-schema-security/pom.xml
URL: 
http://svn.apache.org/viewvc/poi/trunk/sonar/ooxml-schema-security/pom.xml?rev=187=1871110=187=diff
==
--- poi/trunk/sonar/ooxml-schema-security/pom.xml (original)
+++ poi/trunk/sonar/ooxml-schema-security/pom.xml Mon Dec  9 23:56:13 2019
@@ -46,52 +46,7 @@
wget


target/schemas
-   
http://dublincore.org/schemas/xmls/qdc/2003/04/02/dc.xsd
-   
-   
-   
-   install-xsds-part-3
-   generate-sources
-   wget
-   
-   
target/schemas
-   
http://dublincore.org/schemas/xmls/qdc/2003/04/02/dcterms.xsd
-   
-   
-   
-   install-xsds-part-4
-   generate-sources
-   wget
-   
-   
target/schemas
-   
http://dublincore.org/schemas/xmls/qdc/2003/04/02/dcmitype.xsd
-   
-   
-   
-   install-xsds-part-5
-   generate-sources
-   wget
-   
-   
target/schemas
-   
http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd
-   
-   
-   
-   install-xsds-part-6
-   generate-sources
-   wget
-   
-   
target/schemas
-   
https://uri.etsi.org/01903/v1.3.2/XAdES.xsd
-   
-   
-   
-   install-xsds-part-7
-   generate-sources
-   wget
-   
-   
target/schemas
-   
https://uri.etsi.org/01903/v1.4.1/XAdESv141.xsd
+   
https://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd



@@ -112,9 +67,18

svn commit: r1871110 - in /poi/trunk: build.xml src/ooxml/resources/org/apache/poi/schemas/XAdES.xsd src/ooxml/resources/org/apache/poi/schemas/XAdESv141.xsd

2019-12-09 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec  9 22:53:14 2019
New Revision: 1871110

URL: http://svn.apache.org/viewvc?rev=1871110=rev
Log:
Provide XAdES schemas locally, because of connection timeouts

Added:
poi/trunk/src/ooxml/resources/org/apache/poi/schemas/XAdES.xsd
poi/trunk/src/ooxml/resources/org/apache/poi/schemas/XAdESv141.xsd
Modified:
poi/trunk/build.xml

Modified: poi/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/poi/trunk/build.xml?rev=1871110=1871109=1871110=diff
==
--- poi/trunk/build.xml (original)
+++ poi/trunk/build.xml Mon Dec  9 22:53:14 2019
@@ -290,8 +290,8 @@ under the License.
 
 
 https://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
-https://uri.etsi.org/01903/v1.3.2/XAdES.xsd"/>
-https://uri.etsi.org/01903/v1.4.1/XAdESv141.xsd"/>
+
+
 
 
 
 
 
-
+
 
 
 
@@ -536,7 +536,7 @@ under the License.
 
 
 
- 
+
 
 
 
@@ -878,8 +878,8 @@ under the License.
 
 
 
-
-
+
+
 
 
 
@@ -1030,15 +1030,16 @@ under the License.
 
 
 
-
+
 
 
 
 
 
 
-
+
 
+
 
 
 
@@ -1265,7 +1266,7 @@ under the License.
 
 
 
- 
+
 
 
 
 
 
 
@@ -1786,7 +1787,7 @@ under the License.
 
 
 
-
+
 
 
 
@@ -2184,6 +2185,7 @@ under the License.
 
 
 
+
 
 
 
@@ -2849,7 +2851,7 @@ under the License.
 
 
 
-  Using Ant: ${ant.version} from ${ant.home}
+  Using Ant: ${ant.version} from ${ant.home}
 
 


Added: poi/trunk/src/ooxml/resources/org/apache/poi/schemas/XAdES.xsd
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/resources/org/apache/poi/schemas/XAdES.xsd?rev=1871110=auto
==
--- poi/trunk/src/ooxml/resources/org/apache/poi/schemas/XAdES.xsd (added)
+++ poi/trunk/src/ooxml/resources/org/apache/poi/schemas/XAdES.xsd Mon Dec  9 
22:53:14 2019
@@ -0,0 +1,466 @@
+
+http://uri.etsi.org/01903/v1.3.2#; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema; 
xmlns="http://uri.etsi.org/01903/v1.3.2#; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#; elementFormDefault="qualified">
+   http://www.w3.org/2000/09/xmldsig#; 
schemaLocation="http://www.w3.org/

svn commit: r1871109 - /poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java

2019-12-09 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec  9 22:51:11 2019
New Revision: 1871109

URL: http://svn.apache.org/viewvc?rev=1871109=rev
Log:
Ignore "IIO Can't create cache file" errors

Modified:

poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java?rev=1871109=1871108=1871109=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java 
Mon Dec  9 22:51:11 2019
@@ -23,11 +23,12 @@ import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
+import javax.imageio.IIOException;
 import javax.imageio.ImageIO;
 
 import junit.framework.TestCase;
-
 import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.junit.Assume;
 import org.junit.BeforeClass;
 
 /**
@@ -55,63 +56,70 @@ public final class TestHSSFPictureData e
public void testPictures() throws IOException {
 HSSFWorkbook wb = 
HSSFTestDataSamples.openSampleWorkbook("SimpleWithImages.xls");
 
-@SuppressWarnings("unchecked") // TODO - add getFormat() to interface 
PictureData and genericise wb.getAllPictures()
+// TODO - add getFormat() to interface PictureData and genericise 
wb.getAllPictures()
 List lst = wb.getAllPictures();
 //assertEquals(2, lst.size());
 
-for (final HSSFPictureData pict : lst) {
-String ext = pict.suggestFileExtension();
-byte[] data = pict.getData();
-if (ext.equals("jpeg")){
-//try to read image data using javax.imageio.* (JDK 1.4+)
-BufferedImage jpg = ImageIO.read(new 
ByteArrayInputStream(data));
-assertNotNull(jpg);
-assertEquals(192, jpg.getWidth());
-assertEquals(176, jpg.getHeight());
-assertEquals(HSSFWorkbook.PICTURE_TYPE_JPEG, pict.getFormat());
-assertEquals("image/jpeg", pict.getMimeType());
-} else if (ext.equals("png")){
-//try to read image data using javax.imageio.* (JDK 1.4+)
-BufferedImage png = ImageIO.read(new 
ByteArrayInputStream(data));
-assertNotNull(png);
-assertEquals(300, png.getWidth());
-assertEquals(300, png.getHeight());
-assertEquals(HSSFWorkbook.PICTURE_TYPE_PNG, pict.getFormat());
-assertEquals("image/png", pict.getMimeType());
+try {
+for (final HSSFPictureData pict : lst) {
+String ext = pict.suggestFileExtension();
+byte[] data = pict.getData();
+if (ext.equals("jpeg")) {
+//try to read image data using javax.imageio.* (JDK 1.4+)
+BufferedImage jpg = ImageIO.read(new 
ByteArrayInputStream(data));
+assertNotNull(jpg);
+assertEquals(192, jpg.getWidth());
+assertEquals(176, jpg.getHeight());
+assertEquals(HSSFWorkbook.PICTURE_TYPE_JPEG, 
pict.getFormat());
+assertEquals("image/jpeg", pict.getMimeType());
+} else if (ext.equals("png")) {
+//try to read image data using javax.imageio.* (JDK 1.4+)
+BufferedImage png = ImageIO.read(new 
ByteArrayInputStream(data));
+assertNotNull(png);
+assertEquals(300, png.getWidth());
+assertEquals(300, png.getHeight());
+assertEquals(HSSFWorkbook.PICTURE_TYPE_PNG, 
pict.getFormat());
+assertEquals("image/png", pict.getMimeType());
 /*} else {
 //TODO: test code for PICT, WMF and EMF*/
+}
 }
+} catch (IIOException e) {
+Assume.assumeFalse(e.getMessage().contains("IIO Can't create cache 
file"));
+throw e;
 }
 }
-   
+
public void testMacPicture() throws IOException {
 HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("53446.xls");
 
-@SuppressWarnings("unchecked")
-List lst = wb.getAllPictures();
-assertEquals(1, lst.size());
+try{
+List lst = wb.getAllPictures();
+assertEquals(1, lst.size());
 
-HSSFPictureData pict = lst.get(0);
-String ext = pict.suggestFileExtension();
-if (!ext.equals("png")) {
-fail("Expected a PNG.");
-}
+HSSFPictureData pict = lst.ge

svn commit: r1871103 - in /poi/site/publish: changes.html components/hpsf/how-to.html components/hpsf/internals.html components/index.html components/spreadsheet/examples.html components/spreadsheet/h

2019-12-09 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec  9 21:01:31 2019
New Revision: 1871103

URL: http://svn.apache.org/viewvc?rev=1871103=rev
Log:
Remove references to POIBrowser and SViewer

Modified:
poi/site/publish/changes.html
poi/site/publish/components/hpsf/how-to.html
poi/site/publish/components/hpsf/internals.html
poi/site/publish/components/index.html
poi/site/publish/components/spreadsheet/examples.html
poi/site/publish/components/spreadsheet/how-to.html

Modified: poi/site/publish/changes.html
URL: 
http://svn.apache.org/viewvc/poi/site/publish/changes.html?rev=1871103=1871102=1871103=diff
==
--- poi/site/publish/changes.html (original)
+++ poi/site/publish/changes.html Mon Dec  9 21:01:31 2019
@@ -245,6 +245,10 @@ document.write("Last Published: " + docu
 
 https://bz.apache.org/bugzilla/show_bug.cgi?id=63955;>63955HMEFHMEFContentsExtractor
 fails to extract content from winmail.dat
 
+
+
+https://bz.apache.org/bugzilla/show_bug.cgi?id=63927;>63927POI_OverallInconsistent
 mapping of Norwegian locales for date formats
+
   
 
 
@@ -275,7 +279,7 @@ document.write("Last Published: " + docu
 CVE-2019-12415 - XML External Entity (XXE) Processing in Apache POI
   
 
-
+
 Changes
 
 
@@ -401,7 +405,7 @@ document.write("Last Published: " + docu
 4.1.0 (2019-04-09)
 
 
-
+
 Summary
 
 
@@ -426,7 +430,7 @@ document.write("Last Published: " + docu
 Upgrade to XMLSec 2.1.2
   
 
-
+
 Changes
 
 
@@ -604,7 +608,7 @@ document.write("Last Published: " + docu
 4.0.1 (2018-12-03)
 
 
-
+
 Summary
 
 
@@ -615,7 +619,7 @@ document.write("Last Published: " + docu
 Upgrade to XMLBeans 3.0.2
   
 
-
+
 Changes
 
 
@@ -772,7 +776,7 @@ document.write("Last Published: " + docu
 4.0.0 (2018-09-07)
 
 
-
+
 Summary
 
 
@@ -781,7 +785,7 @@ document.write("Last Published: " + docu
 New OOXML schema (1.4) necessary, because of incompatible XMLBeans loading 
not anymore through POIXMLTypeLoader
   
 
-
+
 Changes
 
 
@@ -1083,7 +1087,7 @@ document.write("Last Published: " + docu
 3.17 (2017-09-15)
 
 
-
+
 Summary
 
 
@@ -1098,7 +1102,7 @@ document.write("Last Published: " + docu
 SXSSF: fix XML processing - unicode surrogates and line breaks (#61048, 
#61246)
   
 
-
+
 Changes
 
 
@@ -1208,7 +1212,7 @@ document.write("Last Published: " + docu
 3.17-beta1 (2017-07-01)
 
 
-
+
 Summary
 
 
@@ -1223,7 +1227,7 @@ document.write("Last Published: " + docu
 HWPF: support for Binary RC4 / CryptoAPI de-/encryption
   
 
-
+
 Changes
 
 
@@ -1365,7 +1369,7 @@ document.write("Last Published: " + docu
 3.16 (2017-04-19)
 
 
-
+
 Summary
 
 
@@ -1376,7 +1380,7 @@ document.write("Last Published: " + docu
 various charset related fixes in SS Common, XSSF and HWPF
   
 
-
+
 Changes
 
 
@@ -1446,7 +1450,7 @@ document.write("Last Published: " + docu
 3.16-beta2 (2017-02-02)
 
 
-
+
 Summary
 
 
@@ -1457,7 +1461,7 @@ document.write("Last Published: " + docu
 Unicode and internationalization improvements
   
 
-
+
 Changes
 
 
@@ -1587,7 +1591,7 @@ document.write("Last Published: " + docu
 3.16-beta1 (2016-11-20)
 
 
-
+
 Summary
 
 
@@ -1602,7 +1606,7 @@ document.write("Last Published: " + docu
 Examples to encrypt temp files in SXSSF
   
 
-
+
 Changes
 
 
@@ -1796,7 +1800,7 @@ document.write("Last Published: " + docu
 3.15 (2016-09-19)
 
 
-
+
 Summary
 
 
@@ -1817,7 +1821,7 @@ document.write("Last Published: " + docu
 
   
 
-
+
 Changes
 
 
@@ -2027,7 +2031,7 @@ document.write("Last Published: " + docu
 3.15-beta2 (2016-07-02)
 
 
-
+
 Summary
 
 
@@ -2042,7 +2046,7 @@ document.write("Last Published: " + docu
 various fixes for merged regions in Common SS
   
 
-
+
 Changes
 
 
@@ -2240,7 +2244,7 @@ document.write("Last Published: " + docu
 3.15-beta1 (2016-04-15)
 
 
-
+
 Summary
 
 
@@ -2255,7 +2259,7 @@ document.write("Last Published: " + docu
 fixes for color handling in XSSF and support for system colors in Common 
SL
   
 
-
+
 Changes
 
 
@@ -2365,7 +2369,7 @@ document.write("Last Published: " + docu
 3.14 (2016-03-07)
 
 
-
+
 Summary
 
 
@@ -2389,7 +2393,7 @@ document.write("Last Published: " + docu
 XWPF: various fixes for handling paragraphs and tables
   
 
-
+
 Changes
 
 
@@ -2571,7 +2575,7 @

svn commit: r1871102 - in /poi: site/src/documentation/content/xdocs/components/ site/src/documentation/content/xdocs/components/hpsf/ site/src/documentation/content/xdocs/components/spreadsheet/ trun

2019-12-09 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec  9 20:56:52 2019
New Revision: 1871102

URL: http://svn.apache.org/viewvc?rev=1871102=rev
Log:
Remove POIBrowser and SViewer and remove references to it

Removed:
poi/trunk/src/examples/src/org/apache/poi/hssf/view/
poi/trunk/src/examples/src/org/apache/poi/poifs/
Modified:
poi/site/src/documentation/content/xdocs/components/hpsf/how-to.xml
poi/site/src/documentation/content/xdocs/components/hpsf/internals.xml
poi/site/src/documentation/content/xdocs/components/index.xml
poi/site/src/documentation/content/xdocs/components/spreadsheet/examples.xml

Modified: poi/site/src/documentation/content/xdocs/components/hpsf/how-to.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/components/hpsf/how-to.xml?rev=1871102=1871101=1871102=diff
==
--- poi/site/src/documentation/content/xdocs/components/hpsf/how-to.xml 
(original)
+++ poi/site/src/documentation/content/xdocs/components/hpsf/how-to.xml Mon Dec 
 9 20:56:52 2019
@@ -351,10 +351,7 @@ else
  only difference is that they are not located in the POI filesystem's root
  but in a nested directory instead. Just register a
  POIFSReaderListener for the property set streams you are
- interested in. For example, the POIBrowser application
- tries to open each and every document in a POI filesystem
- as a property set stream. If this operation was successful it displays the
- properties.
+ interested in.

 
 

Modified: poi/site/src/documentation/content/xdocs/components/hpsf/internals.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/components/hpsf/internals.xml?rev=1871102=1871101=1871102=diff
==
--- poi/site/src/documentation/content/xdocs/components/hpsf/internals.xml 
(original)
+++ poi/site/src/documentation/content/xdocs/components/hpsf/internals.xml Mon 
Dec  9 20:56:52 2019
@@ -1054,8 +1054,6 @@
href="http://msdn.microsoft.com/library/default.asp;>MSDN
Library. Use the search function to try to find what you are
   looking for, e.g. "codepage" or "document summary information" etc.
-
- This documentation origins from the http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html;>HPSF
 description available at http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html;>http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html.
 

   

Modified: poi/site/src/documentation/content/xdocs/components/index.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/components/index.xml?rev=1871102=1871101=1871102=diff
==
--- poi/site/src/documentation/content/xdocs/components/index.xml (original)
+++ poi/site/src/documentation/content/xdocs/components/index.xml Mon Dec  9 
20:56:52 2019
@@ -37,16 +37,16 @@
 property sets to serialize their document objects.
   
   Apache POI is also the master project for developing pure
-Java ports of file formats based on Office Open XML (ooxml). 
+Java ports of file formats based on Office Open XML (ooxml).
 OOXML is part of an ECMA / ISO standardisation effort. This
 documentation is quite large, but you can normally find the bit you
 need without too much effort!
 http://www.ecma-international.org/publications/standards/Ecma-376.htm;>ECMA-376
 standard is here,
-and is also under the 
+and is also under the
 https://msdn.microsoft.com/en-us/openspecifications/default;>Microsoft 
OSP.
   
-
-
+
+
   POIFS for OLE 2 Documents
 
  POIFS is the oldest and most stable part of POI.  It is our port of 
the OLE 2 Compound Document Format to
@@ -75,7 +75,7 @@
  development. It can already read and write simple files.


- We are also working on the XWPF for the WordprocessingML (2007+) 
format from the 
+ We are also working on the XWPF for the WordprocessingML (2007+) 
format from the
  OOXML specification. This provides read and write support for simpler
   files, along with text extraction capabilities.

@@ -88,7 +88,7 @@
information.


- We are also working on the XSLF for the PresentationML (2007+) format 
from the 
+ We are also working on the XSLF for the PresentationML (2007+) format 
from the
  OOXML specification.

   
@@ -279,7 +279,7 @@
   
 
   
-This table maps artifacts into the jar file name. "version-mmdd" 
is 
+This table maps artifacts into the jar file name. "version-mmdd" is
 

svn commit: r1871067 [2/2] - /poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/

2019-12-08 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java?rev=1871067=1871066=1871067=diff
==
--- poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java 
Mon Dec  9 00:37:21 2019
@@ -20,16 +20,19 @@
  */
 package org.apache.poi.ss.formula.functions;
 
+import static org.junit.Assert.assertTrue;
+
 import org.apache.poi.ss.formula.functions.XYNumericFunction.Accumulator;
+import org.junit.Test;
 
 
 /**
  * @author Amol S. Deshmukh  amolweb at ya hoo dot com 
- *  
+ *
  */
-@SuppressWarnings("ConstantConditions")
 public class TestMathX extends AbstractNumericTestCase {
 
+@Test
 public void testAcosh() {
 double d;
 
@@ -53,6 +56,7 @@ public class TestMathX extends AbstractN
 
 }
 
+@Test
 public void testAsinh() {
 double d;
 
@@ -79,6 +83,7 @@ public class TestMathX extends AbstractN
 
 }
 
+@Test
 public void testAtanh() {
 double d;
 d = MathX.atanh(0);
@@ -110,6 +115,7 @@ public class TestMathX extends AbstractN
 
 }
 
+@Test
 public void testCosh() {
 double d;
 d = MathX.cosh(0);
@@ -141,6 +147,7 @@ public class TestMathX extends AbstractN
 
 }
 
+@Test
 public void testTanh() {
 double d;
 d = MathX.tanh(0);
@@ -172,83 +179,86 @@ public class TestMathX extends AbstractN
 
 }
 
+@Test
 public void testMax() {
 double[] d = new double[100];
-d[0] = 1.1; d[1] = 2.1; d[2] = 3.1; d[3] = 4.1; 
+d[0] = 1.1; d[1] = 2.1; d[2] = 3.1; d[3] = 4.1;
 d[4] = 5.1; d[5] = 6.1; d[6] = 7.1; d[7] = 8.1;
 d[8] = 9.1; d[9] = 10.1;d[10] = 11.1;   d[11] = 12.1;
 d[12] = 13.1;   d[13] = 14.1;   d[14] = 15.1;   d[15] = 16.1;
-d[16] = 17.1;   d[17] = 18.1;   d[18] = 19.1;   d[19] = 20.1; 
-
+d[16] = 17.1;   d[17] = 18.1;   d[18] = 19.1;   d[19] = 20.1;
+
 double m = MathX.max(d);
 assertEquals("Max ", 20.1, m);
-
+
 d = new double[1000];
 m = MathX.max(d);
 assertEquals("Max ", 0, m);
-
-d[0] = -1.1; d[1] = 2.1; d[2] = -3.1; d[3] = 4.1; 
+
+d[0] = -1.1; d[1] = 2.1; d[2] = -3.1; d[3] = 4.1;
 d[4] = -5.1; d[5] = 6.1; d[6] = -7.1; d[7] = 8.1;
 d[8] = -9.1; d[9] = 10.1;d[10] = -11.1;   d[11] = 12.1;
 d[12] = -13.1;   d[13] = 14.1;   d[14] = -15.1;   d[15] = 16.1;
-d[16] = -17.1;   d[17] = 18.1;   d[18] = -19.1;   d[19] = 20.1; 
+d[16] = -17.1;   d[17] = 18.1;   d[18] = -19.1;   d[19] = 20.1;
 m = MathX.max(d);
 assertEquals("Max ", 20.1, m);
-
+
 d = new double[20];
-d[0] = -1.1; d[1] = -2.1; d[2] = -3.1; d[3] = -4.1; 
+d[0] = -1.1; d[1] = -2.1; d[2] = -3.1; d[3] = -4.1;
 d[4] = -5.1; d[5] = -6.1; d[6] = -7.1; d[7] = -8.1;
 d[8] = -9.1; d[9] = -10.1;d[10] = -11.1;   d[11] = -12.1;
 d[12] = -13.1;   d[13] = -14.1;   d[14] = -15.1;   d[15] = -16.1;
-d[16] = -17.1;   d[17] = -18.1;   d[18] = -19.1;   d[19] = -20.1; 
+d[16] = -17.1;   d[17] = -18.1;   d[18] = -19.1;   d[19] = -20.1;
 m = MathX.max(d);
 assertEquals("Max ", -1.1, m);
-
+
 }
 
+@Test
 public void testMin() {
 double[] d = new double[100];
-d[0] = 1.1; d[1] = 2.1; d[2] = 3.1; d[3] = 4.1; 
+d[0] = 1.1; d[1] = 2.1; d[2] = 3.1; d[3] = 4.1;
 d[4] = 5.1; d[5] = 6.1; d[6] = 7.1; d[7] = 8.1;
 d[8] = 9.1; d[9] = 10.1;d[10] = 11.1;   d[11] = 12.1;
 d[12] = 13.1;   d[13] = 14.1;   d[14] = 15.1;   d[15] = 16.1;
-d[16] = 17.1;   d[17] = 18.1;   d[18] = 19.1;   d[19] = 20.1; 
-
+d[16] = 17.1;   d[17] = 18.1;   d[18] = 19.1;   d[19] = 20.1;
+
 double m = MathX.min(d);
 assertEquals("Min ", 0, m);
-
+
 d = new double[20];
-d[0] = 1.1; d[1] = 2.1; d[2] = 3.1; d[3] = 4.1; 
+d[0] = 1.1; d[1] = 2.1; d[2] = 3.1; d[3] = 4.1;
 d[4] = 5.1; d[5] = 6.1; d[6] = 7.1; d[7] = 8.1;
 d[8] = 9.1; d[9] = 10.1;d[10] = 11.1;   d[11] = 12.1;
 d[12] = 13.1;   d[13] = 14.1;   d[14] = 15.1;   d[15] = 16.1;
-d[16] = 17.1;   d[17] = 18.1;   d[18] = 19.1;   d[19] = 20.1; 
-
+d[16] = 17.1;   d[17] = 18.1;   d[18] = 19.1;   d[19] = 20.1;
+
 m = MathX.min(d);
 assertEquals("Min ", 1.1, m);
-
+
 d = new double[1000];
 m = MathX.min(d);
   

svn commit: r1871067 [1/2] - /poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/

2019-12-08 Thread kiwiwings
Author: kiwiwings
Date: Mon Dec  9 00:37:21 2019
New Revision: 1871067

URL: http://svn.apache.org/viewvc?rev=1871067=rev
Log:
Migrate tests to Junit 4

Modified:

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/AbstractNumericTestCase.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestAddress.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestAreas.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestAverage.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestBin2Dec.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCalendarFieldFunction.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestClean.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCode.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestComplex.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDate.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDec2Bin.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDec2Hex.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDelta.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestFinanceLib.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestHex2Dec.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestIPMT.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestIndex.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestIntercept.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestIrr.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestIsBlank.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestLeftRight.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestLen.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestLogicalFunction.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMatch.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMid.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMirr.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestNpv.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestOct2Dec.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestOffset.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestPPMT.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestPoisson.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestQuotient.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestRank.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestRelationalOperations.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestRowCol.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestSlope.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestStatsLib.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestSumif.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestSumifs.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestSumproduct.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestTFunc.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestTrim.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestTrunc.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestValue.java

poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestXYNumericFunction.java

Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/AbstractNumericTestCase.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/AbstractNumericTestCase.java?rev=1871067=1871066=1871067=diff
==
--- 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/AbstractNumericTestCase.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/AbstractNumericTestCase.java
 Mon Dec  9 00:37:21 2019
@@ -20,27 +20,19 @@
  */
 package org.apache.poi.ss.formula.functions;
 
-import junit.framework.TestCase;
+import static org.junit.Assert.assertTrue;
 
 /**
  * @author Amol S. Deshmukh  amolweb at ya hoo dot com 
  *
  */
-public abstract class AbstractNumericTestCase extends TestCase {
+public abstract class AbstractNumericTestCase {
 
 public static final double POS_ZERO = 1E-4;
 public static final double DIFF_TOLERANCE_FACTOR

svn commit: r1871066 [2/2] - in /poi: site/src/documentation/content/xdocs/ trunk/src/java/org/apache/poi/ss/util/ trunk/src/java/org/apache/poi/util/ trunk/src/testcases/org/apache/poi/ss/util/

2019-12-08 Thread kiwiwings
Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java?rev=1871066=1871065=1871066=diff
==
--- poi/trunk/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java 
Sun Dec  8 23:36:02 2019
@@ -19,6 +19,11 @@
 
 package org.apache.poi.ss.util;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.text.DateFormat;
@@ -26,6 +31,11 @@ import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.Locale;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Cell;
@@ -34,8 +44,8 @@ import org.apache.poi.ss.usermodel.DataF
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.util.LocaleID;
 import org.apache.poi.util.TempFile;
-import org.junit.Ignore;
 import org.junit.Test;
 
 public final class TestDateFormatConverter {
@@ -148,4 +158,45 @@ public final class TestDateFormatConvert
 public void testJDK11MyLocale() {
 DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, 
Locale.forLanguageTag("my"));
 }
+
+@Test
+public void testAllKnownLocales() {
+Pattern p = Pattern.compile("\\[\\$-(\\p{XDigit}+)]");
+
+Set blacklist = Stream.of(
+"sd-Deva", "tzm-Arab", "fuv", "plt", "yue", "tdd-Tale", "tdd",
+"khb-Talu", "khb", "qps", "ja-Ploc", "dz", "tmz", "ar-Ploc"
+).collect(Collectors.toSet());
+
+for (LocaleID lid : LocaleID.values()) {
+final String langTag = lid.getLanguageTag();
+
+if (langTag.isEmpty() || lid.getWindowsId().startsWith("invalid")) 
{
+continue;
+}
+
+// test all from variant to parent locales
+String cmpTag = (langTag.indexOf('_') > 0) ? 
langTag.replace('_','-') : langTag;
+for (int idx = langTag.length(); idx > 0; idx = 
cmpTag.lastIndexOf('-', idx-1)) {
+final String partTag = langTag.substring(0, idx);
+
+Locale loc = Locale.forLanguageTag(partTag);
+assertNotNull("Invalid language tag: "+partTag, loc);
+
+if (blacklist.contains(partTag)) {
+continue;
+}
+
+String prefix = DateFormatConverter.getPrefixForLocale(loc);
+assertNotNull("Prefix not found - language tag: "+partTag, 
prefix);
+assertNotEquals("Prefix not found - language tag: 
"+partTag,"", prefix);
+Matcher m = p.matcher(prefix);
+assertTrue("Invalid prefix: "+prefix, m.matches());
+
+LocaleID partLid = LocaleID.lookupByLanguageTag(partTag);
+assertNotNull("LocaleID not found for part: "+partTag, 
partLid);
+assertEquals(partLid.getLcid(), Integer.parseInt(m.group(1), 
16));
+}
+}
+}
 }



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1871066 [1/2] - in /poi: site/src/documentation/content/xdocs/ trunk/src/java/org/apache/poi/ss/util/ trunk/src/java/org/apache/poi/util/ trunk/src/testcases/org/apache/poi/ss/util/

2019-12-08 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  8 23:36:02 2019
New Revision: 1871066

URL: http://svn.apache.org/viewvc?rev=1871066=rev
Log:
Bug 63927 - Inconsistent mapping of Norwegian locales for date formats

Added:
poi/trunk/src/java/org/apache/poi/util/LocaleID.java   (with props)
Modified:
poi/site/src/documentation/content/xdocs/changes.xml
poi/trunk/src/java/org/apache/poi/ss/util/DateFormatConverter.java
poi/trunk/src/java/org/apache/poi/util/LocaleUtil.java
poi/trunk/src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java

Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1871066=1871065=1871066=diff
==
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Sun Dec  8 23:36:02 
2019
@@ -93,6 +93,7 @@
 Produce 
valid PPTX file with several chart series
 Add Doughnut chart data 
series support
 HMEFContentsExtractor fails to extract content from 
winmail.dat
+Inconsistent mapping of Norwegian locales for date 
formats
   
 
 

Modified: poi/trunk/src/java/org/apache/poi/ss/util/DateFormatConverter.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/DateFormatConverter.java?rev=1871066=1871065=1871066=diff
==
--- poi/trunk/src/java/org/apache/poi/ss/util/DateFormatConverter.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/util/DateFormatConverter.java Sun Dec  
8 23:36:02 2019
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
+import org.apache.poi.util.LocaleID;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 
@@ -46,56 +47,59 @@ import org.apache.poi.util.POILogger;
  *
  * TODO Generalise this for all Excel format strings
  */
-public class DateFormatConverter  {
+@SuppressWarnings("unused")
+public final class DateFormatConverter  {
private static POILogger logger = 
POILogFactory.getLogger(DateFormatConverter.class);
-   
+
+   private DateFormatConverter() {
+   }
+
public static class DateFormatTokenizer {
String format;
int pos;
-   
+
public DateFormatTokenizer(String format) {
this.format = format;
}
-   
+
public String getNextToken() {
if( pos >= format.length() ) {
return null;
}
int subStart = pos;
-   char curChar = format.charAt(pos);
+   final char curChar = format.charAt(pos);
++pos;
if( curChar == '\'' ) {
-   while( ( pos < format.length() ) && ( ( curChar 
= format.charAt(pos) ) != '\'' ) ) {
+   while( ( pos < format.length() ) && ( 
format.charAt(pos) != '\'' ) ) {
++pos;
}
if( pos < format.length() ) {
++pos;
}
} else {
-   char activeChar = curChar;
-   while( ( pos < format.length() ) && ( ( curChar 
= format.charAt(pos) ) == activeChar ) ) {
+   while( ( pos < format.length() ) && ( 
format.charAt(pos) == curChar ) ) {
++pos;
}
}
return format.substring(subStart,pos);
}
-   
+
public static String[] tokenize( String format ) {
List result = new ArrayList<>();
-   
+
DateFormatTokenizer tokenizer = new 
DateFormatTokenizer(format);
String token;
while( ( token = tokenizer.getNextToken() ) != null ) {
result.add(token);
}
-   
+
return result.toArray(new String[0]);
}
-   
+
@Override
public String toString() {
StringBuilder result = new StringBuilder();
-   
+
DateFormatTokenizer tokenizer = new 
DateFormatTokenizer(format);
String token;
while( ( token = tokenizer.getNextToken() ) 

svn commit: r1871065 - in /poi/trunk/src: java/org/apache/poi/ss/usermodel/DateUtil.java testcases/org/apache/poi/ss/usermodel/TestDateUtil.java

2019-12-08 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  8 23:31:20 2019
New Revision: 1871065

URL: http://svn.apache.org/viewvc?rev=1871065=rev
Log:
Bug 63779 -  Add support for the new Java date/time API added in Java 8

Active roundSeconds again

Modified:
poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/TestDateUtil.java

Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java?rev=1871065=1871064=1871065=diff
==
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java [UTF-8] 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java [UTF-8] Sun 
Dec  8 23:31:20 2019
@@ -18,9 +18,7 @@
 
 package org.apache.poi.ss.usermodel;
 
-import org.apache.poi.ss.formula.ConditionalFormattingEvaluator;
-import org.apache.poi.util.LocaleUtil;
-
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -28,6 +26,7 @@ import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatterBuilder;
 import java.time.temporal.ChronoField;
+import java.time.temporal.ChronoUnit;
 import java.time.temporal.TemporalAccessor;
 import java.time.temporal.TemporalQueries;
 import java.util.Calendar;
@@ -35,6 +34,9 @@ import java.util.Date;
 import java.util.TimeZone;
 import java.util.regex.Pattern;
 
+import org.apache.poi.ss.formula.ConditionalFormattingEvaluator;
+import org.apache.poi.util.LocaleUtil;
+
 /**
  * Contains methods for dealing with Excel dates.
  */
@@ -49,8 +51,15 @@ public class DateUtil {
 public static final int HOURS_PER_DAY = 24;
 public static final int SECONDS_PER_DAY = (HOURS_PER_DAY * 
MINUTES_PER_HOUR * SECONDS_PER_MINUTE);
 
-private static final intBAD_DATE = -1;   // used to specify 
that date is invalid
-public static final long   DAY_MILLISECONDS = SECONDS_PER_DAY * 1000L;
+// used to specify that date is invalid
+private static final int BAD_DATE = -1;
+public static final long DAY_MILLISECONDS = SECONDS_PER_DAY * 1000L;
+
+
+
+private static final BigDecimal BD_NANOSEC_DAY = 
BigDecimal.valueOf(SECONDS_PER_DAY * 1e9);
+private static final BigDecimal BD_MILISEC_RND = BigDecimal.valueOf(0.5 * 
1e6);
+private static final BigDecimal BD_SECOND_RND = BigDecimal.valueOf(0.5 * 
1e9);
 
 private static final Pattern TIME_SEPARATOR_PATTERN = Pattern.compile(":");
 
@@ -168,7 +177,7 @@ public class DateUtil {
 public static double getExcelDate(Date date) {
 return getExcelDate(date, false);
 }
-
+
 /**
  * Given a Date, converts it into a double representing its internal Excel 
representation,
  *   which is the number of days since 1/1/1900. Fractional days represent 
hours, minutes, and seconds.
@@ -186,7 +195,7 @@ public class DateUtil {
 int minute = calStart.get(Calendar.MINUTE);
 int second = calStart.get(Calendar.SECOND);
 int milliSecond = calStart.get(Calendar.MILLISECOND);
-
+
 return internalGetExcelDate(year, dayOfYear, hour, minute, second, 
milliSecond, use1904windowing);
 }
 
@@ -210,7 +219,7 @@ public class DateUtil {
 
 return internalGetExcelDate(year, dayOfYear, hour, minute, second, 
milliSecond, use1904windowing);
 }
-
+
 private static double internalGetExcelDate(int year, int dayOfYear, int 
hour, int minute, int second, int milliSecond, boolean use1904windowing) {
 if ((!use1904windowing && year < 1900) ||
 (use1904windowing && year < 1904))
@@ -341,7 +350,7 @@ public class DateUtil {
 public static Date getJavaDate(double date, boolean use1904windowing) {
 return getJavaDate(date, use1904windowing, null, false);
 }
-
+
 /**
  *  Given an Excel date with using 1900 date windowing, and
  *   converts it to a java.time.LocalDateTime.
@@ -396,13 +405,16 @@ public class DateUtil {
  *  @param roundSeconds round to closest second
  *  @return Java representation of the date, or null if date is not a 
valid Excel date
  */
+@SuppressWarnings("squid:S2111")
 public static LocalDateTime getLocalDateTime(double date, boolean 
use1904windowing, boolean roundSeconds) {
 if (!isValidExcelDate(date)) {
 return null;
 }
-int wholeDays = (int)Math.floor(date);
-int millisecondsInDay = (int)((date - wholeDays) * DAY_MILLISECONDS + 
0.5);
-
+
+BigDecimal bd = new BigDecimal(date);
+
+int wholeDays = bd.intValue();
+
 int startYear = 1900;
 int dayAdjust = -1; // Excel thinks 2/29/1900 is a valid date, which 
it isn't
 if (use1904windowing) {
@@ -417,7 +429,15 @@ public cla

svn commit: r1871064 - in /poi/trunk/src: examples/src/org/apache/poi/ss/examples/ java/org/apache/poi/hssf/record/ java/org/apache/poi/hssf/usermodel/ java/org/apache/poi/poifs/crypt/ java/org/apache

2019-12-08 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  8 23:29:50 2019
New Revision: 1871064

URL: http://svn.apache.org/viewvc?rev=1871064=rev
Log:
Sonar fixes - type: bugs / severity: major

Modified:

poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java
poi/trunk/src/examples/src/org/apache/poi/ss/examples/BusinessPlan.java
poi/trunk/src/java/org/apache/poi/hssf/record/FontRecord.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCellStyle.java
poi/trunk/src/java/org/apache/poi/poifs/crypt/ChunkedCipherInputStream.java
poi/trunk/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java

poi/trunk/src/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDocumentInputStream.java

poi/trunk/src/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDocumentOutputStream.java
poi/trunk/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java
poi/trunk/src/java/org/apache/poi/sl/draw/DrawFactory.java
poi/trunk/src/java/org/apache/poi/sl/draw/DrawShape.java
poi/trunk/src/java/org/apache/poi/ss/formula/functions/Delta.java
poi/trunk/src/java/org/apache/poi/ss/formula/functions/Fixed.java
poi/trunk/src/java/org/apache/poi/ss/formula/functions/Irr.java
poi/trunk/src/java/org/apache/poi/ss/usermodel/DataFormatter.java
poi/trunk/src/java/org/apache/poi/ss/usermodel/ExcelGeneralNumberFormat.java
poi/trunk/src/java/org/apache/poi/ss/usermodel/FractionFormat.java

poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emfplus/HemfPlusDraw.java

Modified: 
poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java?rev=1871064=1871063=1871064=diff
==
--- 
poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java 
(original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java 
Sun Dec  8 23:29:50 2019
@@ -685,8 +685,8 @@ public class AddDimensionedImage {
 if(sheet instanceof HSSFSheet) {
 // Next, from the columns width, calculate how many co-ordinate
 // positons there are per millimetre
-coordinatePositionsPerMM = 
ConvertImageUnits.TOTAL_COLUMN_COORDINATE_POSITIONS /
-colWidthMM;
+coordinatePositionsPerMM = (colWidthMM == 0) ? 0
+: ConvertImageUnits.TOTAL_COLUMN_COORDINATE_POSITIONS / 
colWidthMM;
 // From this figure, determine how many co-ordinat positions to
 // inset the left hand or bottom edge of the image.
 inset = (int)(coordinatePositionsPerMM * overlapMM);
@@ -784,8 +784,8 @@ public class AddDimensionedImage {
 }
 
 if(sheet instanceof HSSFSheet) {
-rowCoordinatesPerMM = 
ConvertImageUnits.TOTAL_ROW_COORDINATE_POSITIONS /
-rowHeightMM;
+rowCoordinatesPerMM = (rowHeightMM == 0) ? 0
+: ConvertImageUnits.TOTAL_ROW_COORDINATE_POSITIONS / 
rowHeightMM;
 inset = (int)(overlapMM * rowCoordinatesPerMM);
 }
 else {

Modified: 
poi/trunk/src/examples/src/org/apache/poi/ss/examples/BusinessPlan.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/ss/examples/BusinessPlan.java?rev=1871064=1871063=1871064=diff
==
--- poi/trunk/src/examples/src/org/apache/poi/ss/examples/BusinessPlan.java 
(original)
+++ poi/trunk/src/examples/src/org/apache/poi/ss/examples/BusinessPlan.java Sun 
Dec  8 23:29:50 2019
@@ -17,15 +17,26 @@
 
 package org.apache.poi.ss.examples;
 
-import org.apache.poi.xssf.usermodel.*;
-import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Calendar;
 import java.io.FileOutputStream;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.DataFormat;
+import org.apache.poi.ss.usermodel.FillPatternType;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.PrintSetup;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 /**
  * A business plan demo
@@ -36,8 +47,6 @@ import java.text.SimpleDateFormat;
  */
 public class

svn commit: r1870977 [2/2] - in /poi/trunk/src/examples/src/org/apache/poi/hssf/view: SVBorder.java SVFractionalFormat.java SVRowHeader.java SVSheetTable.java SVTableCellRenderer.java SVTableModel.jav

2019-12-07 Thread kiwiwings
Modified: poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java?rev=1870977=1870976=1870977=diff
==
--- poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java 
(original)
+++ poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java Sat 
Dec  7 11:53:48 2019
@@ -32,55 +32,63 @@ import org.apache.poi.hssf.util.HSSFColo
 /**
  * SVTableCell Editor and Renderer helper functions.
  *
- * @author Jason Height
+ * @author Jason Height
  */
 public class SVTableUtils {
-  private final static Map colors = 
HSSFColor.getIndexHash();
-  /**  Description of the Field */
-  public final static Color black = getAWTColor(HSSFColorPredefined.BLACK);
-  /**  Description of the Field */
-  public final static Color white = getAWTColor(HSSFColorPredefined.WHITE);
-  /**  Description of the Field */
-  public static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
-
-
-  /**
-   *  Creates a new font for a specific cell style
-   */
-  public static Font makeFont(HSSFFont font) {
-boolean isbold = font.getBold();
-boolean isitalics = font.getItalic();
-int fontstyle = Font.PLAIN;
-if (isbold) {
-  fontstyle = Font.BOLD;
-}
-if (isitalics) {
-  fontstyle = fontstyle | Font.ITALIC;
-}
+private final static Map colors = 
HSSFColor.getIndexHash();
+/**
+ * Description of the Field
+ */
+public final static Color black = getAWTColor(HSSFColorPredefined.BLACK);
+/**
+ * Description of the Field
+ */
+public final static Color white = getAWTColor(HSSFColorPredefined.WHITE);
+/**
+ * Description of the Field
+ */
+public static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
+
+
+/**
+ * Creates a new font for a specific cell style
+ */
+public static Font makeFont(HSSFFont font) {
+boolean isbold = font.getBold();
+boolean isitalics = font.getItalic();
+int fontstyle = Font.PLAIN;
+if (isbold) {
+fontstyle = Font.BOLD;
+}
+if (isitalics) {
+fontstyle = fontstyle | Font.ITALIC;
+}
+
+int fontheight = font.getFontHeightInPoints();
+if (fontheight == 9) {
+//fix for stupid ol Windows
+fontheight = 10;
+}
 
-int fontheight = font.getFontHeightInPoints();
-if (fontheight == 9) {
-  //fix for stupid ol Windows
-  fontheight = 10;
+return new Font(font.getFontName(), fontstyle, fontheight);
 }
 
-return new Font(font.getFontName(), fontstyle, fontheight);
-  }
+/**
+ * This method retrieves the AWT Color representation from the colour hash 
table
+ */
+/* package */
+static Color getAWTColor(int index, Color deflt) {
+HSSFColor clr = colors.get(index);
+if (clr == null) {
+return deflt;
+}
+short[] rgb = clr.getTriplet();
+return new Color(rgb[0], rgb[1], rgb[2]);
+}
 
-  /** This method retrieves the AWT Color representation from the colour hash 
table
-   *
-   */
-  /* package */ static Color getAWTColor(int index, Color deflt) {
-HSSFColor clr = colors.get(index);
-if (clr == null) {
-  return deflt;
+/* package */
+static Color getAWTColor(HSSFColorPredefined clr) {
+short[] rgb = clr.getTriplet();
+return new Color(rgb[0], rgb[1], rgb[2]);
 }
-short[] rgb = clr.getTriplet();
-return new Color(rgb[0],rgb[1],rgb[2]);
-  }
-
-  /* package */ static Color getAWTColor(HSSFColorPredefined clr) {
-short[] rgb = clr.getTriplet();
-return new Color(rgb[0],rgb[1],rgb[2]);
-  }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/hssf/view/SViewerPanel.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/view/SViewerPanel.java?rev=1870977=1870976=1870977=diff
==
--- poi/trunk/src/examples/src/org/apache/poi/hssf/view/SViewerPanel.java 
(original)
+++ poi/trunk/src/examples/src/org/apache/poi/hssf/view/SViewerPanel.java Sat 
Dec  7 11:53:48 2019
@@ -53,267 +53,291 @@ import org.apache.poi.hssf.usermodel.HSS
  * This class presents the sheets to the user.
  */
 public class SViewerPanel extends JPanel {
-  /** This field is the magic number to convert from a Character width to a
-   *  java pixel width.
-   *
-   * When the "normal" font size in a workbook changes, this effects all
-   * of the heights and widths. Unfortunately there is no way to retrieve this
-   * information, hence the MAGIC number.
-   *
-   * This number may only work for the normal style font size of Arial size 10.
-   *
-   */
-  private static final int magicCharFactor = 7;
-  /** Reference to the wookbook that is being 

svn commit: r1870977 [1/2] - in /poi/trunk/src/examples/src/org/apache/poi/hssf/view: SVBorder.java SVFractionalFormat.java SVRowHeader.java SVSheetTable.java SVTableCellRenderer.java SVTableModel.jav

2019-12-07 Thread kiwiwings
Author: kiwiwings
Date: Sat Dec  7 11:53:48 2019
New Revision: 1870977

URL: http://svn.apache.org/viewvc?rev=1870977=rev
Log:
Reindent to 4 spaces - optimize imports

Modified:
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVBorder.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVFractionalFormat.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVRowHeader.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVSheetTable.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVTableCellRenderer.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVTableModel.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVTableUtils.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SViewerPanel.java

Modified: poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVBorder.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVBorder.java?rev=1870977=1870976=1870977=diff
==
--- poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVBorder.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVBorder.java Sat Dec  
7 11:53:48 2019
@@ -15,10 +15,12 @@
See the License for the specific language governing permissions and
limitations under the License.
  */
-
+
 package org.apache.poi.hssf.view;
 
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
 
 import javax.swing.border.AbstractBorder;
 
@@ -26,532 +28,532 @@ import org.apache.poi.ss.usermodel.Borde
 
 /**
  * This is an attempt to implement Excel style borders for the SheetViewer.
- * Mostly just overrides stuff so the javadoc won't appear here but will 
+ * Mostly just overrides stuff so the javadoc won't appear here but will
  * appear in the generated stuff.
- * 
+ *
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height
  */
 public class SVBorder extends AbstractBorder {
-  private Color northColor;
-  private Color eastColor;
-  private Color southColor;
-  private Color westColor;
-  private BorderStyle northBorderType = BorderStyle.NONE;
-  private BorderStyle eastBorderType = BorderStyle.NONE;
-  private BorderStyle southBorderType = BorderStyle.NONE;
-  private BorderStyle westBorderType = BorderStyle.NONE;
-  private boolean northBorder;
-  private boolean eastBorder;
-  private boolean southBorder;
-  private boolean westBorder;
-  private boolean selected;
-
-   public void setBorder(Color northColor, Color eastColor,
- Color southColor, Color westColor,
- BorderStyle northBorderType, BorderStyle 
eastBorderType,
- BorderStyle southBorderType, BorderStyle 
westBorderType,
- boolean selected) {
- this.eastColor = eastColor;
- this.southColor = southColor;
- this.westColor = westColor;
- this.northBorderType = northBorderType;
- this.eastBorderType = eastBorderType;
- this.southBorderType = southBorderType;
- this.westBorderType = westBorderType;
- this.northBorder=northBorderType != BorderStyle.NONE;
- this.eastBorder=eastBorderType != BorderStyle.NONE;
- this.southBorder=southBorderType != BorderStyle.NONE;
- this.westBorder=westBorderType != BorderStyle.NONE;
- this.selected = selected;
-   }
-
-   @Override
-public void paintBorder(Component c, Graphics g, int x, int y, int width,
-   int height) {
-  Color oldColor = g.getColor();
-
-
- paintSelectedBorder(g, x, y, width, height);
- paintNormalBorders(g, x, y, width, height);
- paintDottedBorders(g, x, y, width, height);
- paintDashedBorders(g, x, y, width, height);
- paintDoubleBorders(g, x, y, width, height);
- paintDashDotDotBorders(g, x, y, width, height);
-
-
- g.setColor(oldColor);
-   }
-
-   /**
-* Called by paintBorder to paint the border of a selected cell.
-* The paramaters are the Graphics object, location and dimensions of the 
-* cell.
-*/
-   private void paintSelectedBorder(Graphics g, int x, int y, int width,
-  int height) {
- if (selected) {
-   //Need to setup thickness of 2
-   g.setColor(Color.black);
-   //paint the border
-   g.drawRect(x,y,width-1,height-1);
-
-   //paint the filled rectangle at the bottom left hand position
-   g.fillRect(x+width-5, y+height-5, 5, 5);
- }
-   }
-
-
-   /**
-* Called by paintBorder to paint the various versions of normal line
-* borders for a cell.  
-*/
-   private void paintNormalBorders(Graphics g, int x, int y, int width,
-  int height) {
-
-  if (northBorder &&
- ((northBorderType == BorderStyle.THIN) ||
-  (northBo

svn commit: r1870976 - in /poi/trunk/src: examples/src/org/apache/poi/hssf/usermodel/examples/ examples/src/org/apache/poi/ss/examples/ examples/src/org/apache/poi/xssf/usermodel/examples/ excelant/ja

2019-12-07 Thread kiwiwings
Author: kiwiwings
Date: Sat Dec  7 11:45:44 2019
New Revision: 1870976

URL: http://svn.apache.org/viewvc?rev=1870976=rev
Log:
Sonar Fixes - type: bugs / severity: critical - mostly div by 0

Modified:

poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java

poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java

poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BigGridDemo.java

poi/trunk/src/excelant/java/org/apache/poi/ss/excelant/ExcelAntEvaluateCell.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/Guide.java
poi/trunk/src/java/org/apache/poi/ss/formula/atp/YearFracCalculator.java
poi/trunk/src/java/org/apache/poi/ss/formula/functions/Irr.java

poi/trunk/src/java/org/apache/poi/ss/formula/functions/LinearRegressionFunction.java
poi/trunk/src/java/org/apache/poi/util/XMLHelper.java

Modified: 
poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java?rev=1870976=1870975=1870976=diff
==
--- 
poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java
 (original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java
 Sat Dec  7 11:45:44 2019
@@ -559,8 +559,8 @@ public class AddDimensionedImage {
 
 // Next, from the columns width, calculate how many co-ordinate
 // positons there are per millimetre
-coordinatePositionsPerMM = 
ConvertImageUnits.TOTAL_COLUMN_COORDINATE_POSITIONS /
-colWidthMM;
+coordinatePositionsPerMM = colWidthMM == 0 ? 0
+: ConvertImageUnits.TOTAL_COLUMN_COORDINATE_POSITIONS / 
colWidthMM;
 // From this figure, determine how many co-ordinat positions to
 // inset the left hand or bottom edge of the image.
 inset = (int)(coordinatePositionsPerMM * overlapMM);
@@ -615,8 +615,7 @@ public class AddDimensionedImage {
 row = sheet.createRow(toRow);
 }
 // Get the row's height in millimetres and add to the running 
total.
-rowHeightMM = row.getHeightInPoints() /
-ConvertImageUnits.POINTS_PER_MILLIMETRE;
+rowHeightMM = row.getHeightInPoints() / 
ConvertImageUnits.POINTS_PER_MILLIMETRE;
 totalRowHeightMM += rowHeightMM;
 toRow++;
 }
@@ -647,11 +646,10 @@ public class AddDimensionedImage {
 overlapMM = 0.0D;
 }
 
-rowCoordinatesPerMM = 
ConvertImageUnits.TOTAL_ROW_COORDINATE_POSITIONS /
-rowHeightMM;
+rowCoordinatesPerMM = rowHeightMM == 0 ? 0
+: ConvertImageUnits.TOTAL_ROW_COORDINATE_POSITIONS / 
rowHeightMM;
 inset = (int)(overlapMM * rowCoordinatesPerMM);
-clientAnchorDetail = new ClientAnchorDetail(startingRow,
-toRow, inset);
+clientAnchorDetail = new ClientAnchorDetail(startingRow, toRow, 
inset);
 }
 return(clientAnchorDetail);
 }

Modified: 
poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java?rev=1870976=1870975=1870976=diff
==
--- 
poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java 
(original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java 
Sat Dec  7 11:45:44 2019
@@ -460,8 +460,8 @@ public class AddDimensionedImage {
 // is then instantiated.
 if(sheet instanceof HSSFSheet) {
 colWidthMM = reqImageWidthMM;
-colCoordinatesPerMM = 
ConvertImageUnits.TOTAL_COLUMN_COORDINATE_POSITIONS /
-colWidthMM;
+colCoordinatesPerMM = colWidthMM == 0 ? 0
+: ConvertImageUnits.TOTAL_COLUMN_COORDINATE_POSITIONS 
/ colWidthMM;
 pictureWidthCoordinates = (int)(reqImageWidthMM * 
colCoordinatesPerMM);
 
 }
@@ -553,8 +553,8 @@ public class AddDimensionedImage {
 ConvertImageUnits.POINTS_PER_MILLIMETRE));
 if(sheet instanceof HSSFSheet) {
 rowHeightMM = reqImageHeightMM;
-rowCoordinatesPerMM = 
ConvertImageUnits.TOTAL_ROW_COORDINATE_POSITIONS /
-rowHeightMM;
+rowCoordinatesPerMM = rowHeightMM == 0 ? 0
+: ConvertImageUnits.TOTAL_ROW_COORDINATE_POSITIONS / 
rowHeightMM

svn commit: r1870856 - in /poi/trunk/src: examples/src/org/apache/poi/hssf/usermodel/examples/ examples/src/org/apache/poi/hssf/view/ examples/src/org/apache/poi/ss/examples/ examples/src/org/apache/p

2019-12-04 Thread kiwiwings
Author: kiwiwings
Date: Thu Dec  5 00:18:36 2019
New Revision: 1870856

URL: http://svn.apache.org/viewvc?rev=1870856=rev
Log:
Sonar Fixes

Modified:

poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java

poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/HSSFReadWrite.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SViewer.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SViewerPanel.java

poi/trunk/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java

poi/trunk/src/examples/src/org/apache/poi/ss/examples/formula/CheckFunctionsSupported.java

poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/ChartFromScratch.java
poi/trunk/src/java/org/apache/poi/util/XMLHelper.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToTextConverter.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hssf/converter/TestExcelConverterSuite.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToConverterSuite.java

Modified: 
poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java?rev=1870856=1870855=1870856=diff
==
--- 
poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java
 (original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/AddDimensionedImage.java
 Thu Dec  5 00:18:36 2019
@@ -20,18 +20,18 @@ package org.apache.poi.hssf.usermodel.ex
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.IOException;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFSheet;
-import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
 import org.apache.poi.hssf.usermodel.HSSFPatriarch;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
+import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.util.IOUtils;
 
 
 /**
@@ -126,8 +126,8 @@ import org.apache.poi.ss.usermodel.Clien
  * A note concerning Excels' image resizing behaviour. The HSSFClientAnchor
  * class contains a method called setAnchorType(int) which can be used to
  * determine how Excel will resize an image in reponse to the user increasing
- * or decreasing the dimensions of the cell containing the image. There are 
- * three values that can be passed to this method; 0 = To move and size the 
+ * or decreasing the dimensions of the cell containing the image. There are
+ * three values that can be passed to this method; 0 = To move and size the
  * image with the cell, 2 = To move but don't size the image with the cell,
  * 3 = To prevent the image from moving or being resized along with the cell. 
If
  * an image is inserted using this class and placed into a single cell then if
@@ -298,7 +298,7 @@ public class AddDimensionedImage {
 // become another parameter passed to the method.
 //anchor.setAnchorType(HSSFClientAnchor.DONT_MOVE_AND_RESIZE);
 anchor.setAnchorType(AnchorType.MOVE_AND_RESIZE);
-
+
 // Now, add the picture to the workbook. Note that the type is assumed
 // to be a JPEG/JPG, this could easily (and should) be parameterised
 // however.
@@ -538,7 +538,7 @@ public class AddDimensionedImage {
 // total number of co-ordinate positions to the third paramater
 // of the ClientAnchorDetail constructor. For no sepcific reason,
 // the latter option is used below.
-anchorDetail = new ClientAnchorDetail(startingColumn, 
+anchorDetail = new ClientAnchorDetail(startingColumn,
 toColumn, 
ConvertImageUnits.TOTAL_COLUMN_COORDINATE_POSITIONS);
 }
 // In this case, the image will overlap part of another column and it 
is
@@ -675,29 +675,9 @@ public class AddDimensionedImage {
  * interrupted.
  */
 private byte[] imageToBytes(String imageFilename) throws IOException {
-File imageFile;
-FileInputStream fis = null;
-ByteArrayOutputStream bos;
-int read;
-try {
-imageFile = new File(imageFilename);
-fis = new FileInputStream(imageFile);
-bos = new ByteArrayOutputStream();
-while((read = fis.read()) != -1) {
-bos.write(read

svn commit: r1870769 [1/2] - in /poi: site/src/documentation/content/xdocs/components/spreadsheet/ trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/ trunk/src/examples/src/org/apache/poi/xssf

2019-12-03 Thread kiwiwings
Author: kiwiwings
Date: Tue Dec  3 21:56:47 2019
New Revision: 1870769

URL: http://svn.apache.org/viewvc?rev=1870769=rev
Log:
Sonar Fixes + Refactor scattered XML initializations to XMLHelper

Added:
poi/trunk/src/testcases/org/apache/poi/util/TestXMLHelper.java   (with 
props)
Removed:
poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/POIXMLConstants.java

poi/trunk/src/ooxml/testcases/org/apache/poi/ooxml/util/TestDocumentHelper.java
poi/trunk/src/ooxml/testcases/org/apache/poi/ooxml/util/TestSAXHelper.java
poi/trunk/src/testcases/org/apache/poi/util/TestStaxHelper.java
Modified:
poi/site/src/documentation/content/xdocs/components/spreadsheet/how-to.xml
poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/XLSX2CSV.java

poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/examples/FromHowTo.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/PresetGeometries.java
poi/trunk/src/java/org/apache/poi/util/StaxHelper.java
poi/trunk/src/java/org/apache/poi/util/XMLHelper.java
poi/trunk/src/ooxml/java/org/apache/poi/ooxml/dev/OOXMLPrettyPrint.java
poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/DocumentHelper.java
poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/SAXHelper.java
poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/TransformerHelper.java
poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/StreamHelper.java

poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/TSPTimeStampService.java

poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/ReadOnlySharedStringsTable.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java

poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java

poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFBuiltinTableStyle.java

poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestContentType.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java

poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java

poi/trunk/src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToFoConverter.java

poi/trunk/src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoConverter.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToTextConverter.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hssf/converter/TestExcelConverterSuite.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToConverterSuite.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java

Modified: 
poi/site/src/documentation/content/xdocs/components/spreadsheet/how-to.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/components/spreadsheet/how-to.xml?rev=1870769=1870768=1870769=diff
==
--- poi/site/src/documentation/content/xdocs/components/spreadsheet/how-to.xml 
(original)
+++ poi/site/src/documentation/content/xdocs/components/spreadsheet/how-to.xml 
Tue Dec  3 21:56:47 2019
@@ -509,7 +509,7 @@ The latest version is always available f
 import java.io.InputStream;
 import java.util.Iterator;
 
-import org.apache.poi.ooxml.util.SAXHelper;
+import org.apache.poi.util.XMLHelper;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.xssf.eventusermodel.XSSFReader;
 import org.apache.poi.xssf.model.SharedStringsTable;
@@ -558,7 +558,7 @@ public class ExampleEventUserModel {
 }
 
 public XMLReader fetchSheetParser(SharedStringsTable sst) throws 
SAXException, ParserConfigurationException {
-XMLReader parser = SAXHelper.newXMLReader();
+XMLReader parser = XMLHelper.newXMLReader();
 ContentHandler handler = new SheetHandler(sst);
 parser.setContentHandler(handler);
 return parser;

Modified: 
poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/XLSX2CSV.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/XLSX2CSV.java?rev=1870769=1870768=1870769=diff
==
--- poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/XLSX2CSV.java 
(original)
+++ poi/trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/XLSX2CSV.java 
Tue Dec  3 21:56:47 2019
@@ -30,7 +30,7 @@ import org.apache.poi.openxml4j.opc.Pack
 import

svn commit: r1870769 [2/2] - in /poi: site/src/documentation/content/xdocs/components/spreadsheet/ trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/ trunk/src/examples/src/org/apache/poi/xssf

2019-12-03 Thread kiwiwings
Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java?rev=1870769=1870768=1870769=diff
==
--- 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java
 (original)
+++ 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java
 Tue Dec  3 21:56:47 2019
@@ -22,9 +22,7 @@ import static org.apache.poi.POITestCase
 
 import java.io.StringWriter;
 
-import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
@@ -45,14 +43,12 @@ public class TestWordToFoConverter
 .getDocumentInstance().openResourceAsStream( sampleFileName ) 
);
 
 WordToFoConverter wordToFoConverter = new WordToFoConverter(
-
XMLHelper.getDocumentBuilderFactory().newDocumentBuilder().newDocument() );
+XMLHelper.newDocumentBuilder().newDocument() );
 wordToFoConverter.processDocument( hwpfDocument );
 
 StringWriter stringWriter = new StringWriter();
 
-Transformer transformer = TransformerFactory.newInstance()
-.newTransformer();
-transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
+Transformer transformer = XMLHelper.newTransformer();
 transformer.transform(
 new DOMSource( wordToFoConverter.getDocument() ),
 new StreamResult( stringWriter ) );

Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java?rev=1870769=1870768=1870769=diff
==
--- 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java
 (original)
+++ 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java
 Tue Dec  3 21:56:47 2019
@@ -16,21 +16,21 @@
  */
 package org.apache.poi.hwpf.converter;
 
-import org.apache.poi.POIDataSamples;
-import org.apache.poi.hwpf.HWPFDocument;
-import org.apache.poi.util.XMLHelper;
-import org.junit.Test;
-import org.w3c.dom.Document;
+import static org.apache.poi.POITestCase.assertContains;
+import static org.junit.Assert.assertFalse;
+
+import java.io.StringWriter;
 
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
-import java.io.StringWriter;
 
-import static org.apache.poi.POITestCase.assertContains;
-import static org.junit.Assert.assertFalse;
+import org.apache.poi.POIDataSamples;
+import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.util.XMLHelper;
+import org.junit.Test;
+import org.w3c.dom.Document;
 
 /**
  * Test cases for {@link WordToHtmlConverter}
@@ -45,7 +45,7 @@ public class TestWordToHtmlConverter {
 HWPFDocument hwpfDocument = new HWPFDocument(POIDataSamples
 .getDocumentInstance().openResourceAsStream(sampleFileName));
 
-Document newDocument = 
XMLHelper.getDocumentBuilderFactory().newDocumentBuilder().newDocument();
+Document newDocument = XMLHelper.newDocumentBuilder().newDocument();
 WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
 newDocument);
 
@@ -58,10 +58,7 @@ public class TestWordToHtmlConverter {
 
 StringWriter stringWriter = new StringWriter();
 
-Transformer transformer = TransformerFactory.newInstance()
-.newTransformer();
-transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
+Transformer transformer = XMLHelper.newTransformer();
 transformer.setOutputProperty(OutputKeys.METHOD, "html");
 transformer.transform(
 new DOMSource(wordToHtmlConverter.getDocument()),

Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java?rev=1870769=1870768=1870769=diff
==
--- 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java 
(original)
+++ 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java 
Tue Dec  3 21:56:47 2019
@@ 

svn commit: r1870695 - /poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html

2019-12-01 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  1 23:09:58 2019
New Revision: 1870695

URL: http://svn.apache.org/viewvc?rev=1870695=rev
Log:
add rendering info actually ...

Added:
poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html

Added: poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html
URL: 
http://svn.apache.org/viewvc/poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html?rev=1870695=auto
==
--- poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html (added)
+++ poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html Sun Dec  1 
23:09:58 2019
@@ -0,0 +1,668 @@
+http://www.w3.org/TR/html4/loose.dtd;>
+
+
+
+
+
+
+Rendering slideshows, WMF, EMF and EMF+
+
+
+
+
+
+
+
+
+ndeSetTextSize();
+
+
+
+https://www.apache.org;>Apache Software Foundation  https://poi.apache.org;>Apache POI
+
+
+
+
+
+https://www.apache.org;>
+
+
+
+
+https://poi.apache.org;>
+
+
+
+
+http://www.google.com/search; method="get" class="roundtopsmall">
+ 
+
+
+
+
+
+
+
+Home
+
+
+Help
+
+
+Component APIs
+
+
+Getting Involved
+
+
+
+
+
+
+
+
+
+
+<!--
+document.write("Last Published: " + document.lastModified);
+//  -->
+
+
+
+
+ 
+   
+
+
+
+Component APIs
+
+
+Overview
+
+
+Javadocs
+
+Excel (HSSF/XSSF)
+
+
+Overview
+
+
+Quick Guide
+
+
+HOWTO
+
+
+HSSF to SS 
Converting
+
+
+Formula Support
+
+
+Formula Evaluation
+
+
+Eval Dev Guide
+
+
+Examples
+
+
+Use Case
+
+
+Pictorial Docs
+
+
+Limitations
+
+
+User 
Defined Functions
+
+
+ExcelAnt Tests
+
+
+Hacking HSSF
+
+
+Record 
Generator
+
+
+Charts
+
+
+PowerPoint (HSLF/XSLF)
+
+
+Overview
+
+
+Quick Guide
+
+
+HSLF Cookbook
+
+
+XSLF Cookbook
+
+
+Render SL/WMF/EMF
+
+
+PPT File Format
+
+
+Word (HWPF/XWPF)
+
+
+Overview
+
+
+HWPF Quick Guide
+
+
+XWPF Quick Guide
+
+
+HWPF Format
+
+
+HWPF Project plan
+
+
+
+Outlook (HSMF)
+
+
+Visio (HDGF+XDGF)
+
+Publisher (HPBF)
+
+
+Overview
+
+
+File Format
+
+
+OLE2 Filesystem (POIFS)
+
+
+Overview
+
+
+How To
+
+
+Embedded Documents
+
+
+File System Documentation
+
+
+Use Cases
+
+
+Design
+
+
+OLE2 Document Props (HPSF)
+
+
+Overview
+
+
+How To
+
+
+Thumbnails
+
+
+Internals
+
+
+To Do
+
+
+
+TNEF (HMEF) for winmail.dat
+
+
+OpenXML4J (OOXML)
+
+
+Logging framework
+
+
+
+
+
+
+
+https://donate.apache.org/;>https://www.apache.org/foundation/press/kit/#poweredby;>
+
+
+
+
+
+Rendering slideshows, WMF, EMF and EMF+
+
+
+
+Rendering slideshows, WMF, EMF and EMF+
+
+
+For rendering slideshow (HSLF/XSLF), WMF, EMF and EMF+ 
pictures, POI provides an utility class
+https://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java?view=markup;>
+PPTX2PNG:
+
+
+
+
+
+
+Usage: PPTX2PNG [options] 
ppt or pptx file or 'stdin'
+
+
+
+
+
+Options:
+
+
+-scale float
scale factor
+
+
+-fixSide side   
specify side (long,short,width,height) to fix - use scale as amount of 
pixels
+
+
+-slide integer  
1-based index of a slide to render
+
+
+-format type
png,gif,jpg (,null for testing)
+
+
+-outdir dir 
output directory, defaults to origin of the ppt/pptx file
+
+
+-outfile file   
output filename, defaults to "${basename}-${slideno}.${format}"
+
+
+-outpat pattern 
output filename pattern, defaults to "${basename}-${slideno}.${format}"
+
+
+  
patterns: basename, slideno, format, ext
+
+
+-dump file  
dump the annotated records to a file
+
+
+-quietdo 
not write to console (for normal processing)
+
+
+-ignoreParse  
ignore parsing error and continue with the records read until the error
+
+
+-extractEmbedded  
extract embedded parts
+
+
+
+
+
+
+
+
+
+
+
+Integrate rendering in your code
+
+
+#1 - Use PPTX2PNG via file or stdin
+For file system access, you need to save your slideshow/WMF/EMF/EMF+ first 
to disc and then call 
+PPTX2PNG.main()
+ with the corresponding parameters.
+
+for stdin access, you need to redirect System.in before:
+
+
+
+
+
+
+/* the file content 
*/
+
+
+InputStream is = ...;
+
+
+/* Save and set System.in 
*/
+
+
+InputStream oldIn = 
System.in;
+
+
+try {
+
+
+System.setIn(is);
+
+
+
+
+
+String[] args = {
+
+
+"-format", "png", 
// png,gif,jpg or null for test
+
+
+"-outdir", new 
File("out/").getCanonicalPath(),
+
+
+"-outfile", 
"export.png",
+
+
+"-fixside", 
"long",
+
+
+"-scale", 
"800",
+
+
+
"-ignoreParse",
+
+
+"stdin"
+
+
+};
+
+
+
PPTX2PNG.main(args);
+
+
+
+
+
+} finally {
+
+
+
System.setIn(oldIn);

svn commit: r1870694 - in /poi/site/src/documentation/content/xdocs: changes.xml components/slideshow/ppt-wmf-emf-renderer.xml site.xml

2019-12-01 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  1 23:08:41 2019
New Revision: 1870694

URL: http://svn.apache.org/viewvc?rev=1870694=rev
Log:
Add slideshow, WMF, EMF, EMF+ rendering info

Added:

poi/site/src/documentation/content/xdocs/components/slideshow/ppt-wmf-emf-renderer.xml
Modified:
poi/site/src/documentation/content/xdocs/changes.xml
poi/site/src/documentation/content/xdocs/site.xml

Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1870694=1870693=1870694=diff
==
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Sun Dec  1 23:08:41 
2019
@@ -88,7 +88,7 @@
 
 
   
-Fix 
texture fill - scale stretched images correctly
+Fix texture fill - scale stretched images correctly
 Add, insert and remove 
columns on XSLFTable
 Produce 
valid PPTX file with several chart series
 Add Doughnut chart data 
series support

Added: 
poi/site/src/documentation/content/xdocs/components/slideshow/ppt-wmf-emf-renderer.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/components/slideshow/ppt-wmf-emf-renderer.xml?rev=1870694=auto
==
--- 
poi/site/src/documentation/content/xdocs/components/slideshow/ppt-wmf-emf-renderer.xml
 (added)
+++ 
poi/site/src/documentation/content/xdocs/components/slideshow/ppt-wmf-emf-renderer.xml
 Sun Dec  1 23:08:41 2019
@@ -0,0 +1,160 @@
+
+
+
+
+
+Rendering slideshows, WMF, EMF and EMF+
+
+
+
+Rendering slideshows, WMF, EMF and EMF+
+
+For rendering slideshow (HSLF/XSLF), WMF, EMF and EMF+ 
pictures, POI provides an utility class
+https://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java?view=markup;>
+PPTX2PNG:
+
+
+
+
+
+
+Integrate rendering in your code
+
+#1 - Use PPTX2PNG via file or stdin
+For file system access, you need to save your 
slideshow/WMF/EMF/EMF+ first to disc and then call 
+PPTX2PNG.main()
+ with the corresponding parameters.
+
+
+for stdin access, you need to redirect 
System.in before:
+
+
+
+
+#2 - Render WMF / EMF / EMF+ via the *Picture 
classes
+
+
+
+
+#3 - Render slideshows directly
+
+
+
+
+
\ No newline at end of file

Modified: poi/site/src/documentation/content/xdocs/site.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/site.xml?rev=1870694=1870693=1870694=diff
==
--- poi/site/src/documentation/content/xdocs/site.xml (original)
+++ poi/site/src/documentation/content/xdocs/site.xml Sun Dec  1 23:08:41 2019
@@ -75,6 +75,7 @@ See http://xml.apache.org/forrest/linkin
 
 
 
+
 
 
 



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1870693 - in /poi/site/publish: ./ components/ components/diagram/ components/document/ components/hmef/ components/hpbf/ components/hpsf/ components/hsmf/ components/oxml4j/ components/p

2019-12-01 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  1 23:06:53 2019
New Revision: 1870693

URL: http://svn.apache.org/viewvc?rev=1870693=rev
Log:
Add slideshow, WMF, EMF, EMF+ rendering infos

Modified:
poi/site/publish/changes.html
poi/site/publish/components/diagram/index.html
poi/site/publish/components/document/docoverview.html
poi/site/publish/components/document/index.html
poi/site/publish/components/document/projectplan.html
poi/site/publish/components/document/quick-guide-xwpf.html
poi/site/publish/components/document/quick-guide.html
poi/site/publish/components/hmef/index.html
poi/site/publish/components/hpbf/file-format.html
poi/site/publish/components/hpbf/index.html
poi/site/publish/components/hpsf/how-to.html
poi/site/publish/components/hpsf/index.html
poi/site/publish/components/hpsf/internals.html
poi/site/publish/components/hpsf/thumbnails.html
poi/site/publish/components/hpsf/todo.html
poi/site/publish/components/hsmf/index.html
poi/site/publish/components/index.html
poi/site/publish/components/logging.html
poi/site/publish/components/oxml4j/index.html
poi/site/publish/components/poi-jvm-languages.html
poi/site/publish/components/poi-ruby.html
poi/site/publish/components/poifs/design.html
poi/site/publish/components/poifs/embeded.html
poi/site/publish/components/poifs/fileformat.html
poi/site/publish/components/poifs/how-to.html
poi/site/publish/components/poifs/index.html
poi/site/publish/components/poifs/usecases.html
poi/site/publish/components/slideshow/how-to-shapes.html
poi/site/publish/components/slideshow/index.html
poi/site/publish/components/slideshow/ppt-file-format.html
poi/site/publish/components/slideshow/quick-guide.html
poi/site/publish/components/slideshow/xslf-cookbook.html
poi/site/publish/components/spreadsheet/chart.html
poi/site/publish/components/spreadsheet/converting.html
poi/site/publish/components/spreadsheet/diagram1.html
poi/site/publish/components/spreadsheet/diagrams.html
poi/site/publish/components/spreadsheet/eval-devguide.html
poi/site/publish/components/spreadsheet/eval.html
poi/site/publish/components/spreadsheet/examples.html
poi/site/publish/components/spreadsheet/excelant.html
poi/site/publish/components/spreadsheet/formula.html
poi/site/publish/components/spreadsheet/hacking-hssf.html
poi/site/publish/components/spreadsheet/how-to.html
poi/site/publish/components/spreadsheet/index.html
poi/site/publish/components/spreadsheet/limitations.html
poi/site/publish/components/spreadsheet/quick-guide.html
poi/site/publish/components/spreadsheet/record-generator.html
poi/site/publish/components/spreadsheet/use-case.html
poi/site/publish/components/spreadsheet/user-defined-functions.html
poi/site/publish/linkmap.html

Modified: poi/site/publish/changes.html
URL: 
http://svn.apache.org/viewvc/poi/site/publish/changes.html?rev=1870693=1870692=1870693=diff
==
--- poi/site/publish/changes.html (original)
+++ poi/site/publish/changes.html Sun Dec  1 23:06:53 2019
@@ -205,6 +205,50 @@ document.write("Last Published: " + docu
 
 
 
+
+Version
+4.1.2 (2020-01-??)
+
+
+
+Changes
+
+
+
+
+
+
+
+
+
+TypeBugModuleDescription
+
+
+
+
+
+https://bz.apache.org/bugzilla/show_bug.cgi?id=63918;>63918SL_Common
 XSLFFix texture fill - scale stretched images correctly
+
+
+
+XSLFAdd, insert and remove 
columns on XSLFTable
+
+
+
+https://bz.apache.org/bugzilla/show_bug.cgi?id=63889;>63889XDDFProduce
 valid PPTX file with several chart series
+
+
+
+XDDFAdd Doughnut chart data 
series support
+
+
+
+https://bz.apache.org/bugzilla/show_bug.cgi?id=63955;>63955HMEFHMEFContentsExtractor
 fails to extract content from winmail.dat
+
+  
+
+
+
 
 
 
@@ -231,7 +275,7 @@ document.write("Last Published: " + docu
 CVE-2019-12415 - XML External Entity (XXE) Processing in Apache POI
   
 
-
+
 Changes
 
 
@@ -357,7 +401,7 @@ document.write("Last Published: " + docu
 4.1.0 (2019-04-09)
 
 
-
+
 Summary
 
 
@@ -382,7 +426,7 @@ document.write("Last Published: " + docu
 Upgrade to XMLSec 2.1.2
   
 
-
+
 Changes
 
 
@@ -560,7 +604,7 @@ document.write("Last Published: " + docu
 4.0.1 (2018-12-03)
 
 
-
+
 Summary
 
 
@@ -571,7 +615,7 @@ document.write("Last Published: " + docu
 Upgrade to XMLBeans 3.0.2
   
 
-
+
 Changes
 
 
@@ -728,7 +772,7 @@ document.write("Last Published: " + docu
 4.0.0 (2018-09-07)
 
 
-
+
 Summary
 
 
@@ -737,7 +781,7 @@ document.write("Last Published: " + docu
 New OOXML schema (1.4) necessary, because of incompatible XMLBeans lo

svn commit: r1870692 - in /poi: site/src/documentation/content/xdocs/ trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/ trunk/src/scratchpad/testcases/org/apache/poi/hmef/ trunk/src/scratchpad/t

2019-12-01 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  1 21:06:54 2019
New Revision: 1870692

URL: http://svn.apache.org/viewvc?rev=1870692=rev
Log:
#63955 - HMEFContentsExtractor fails to extract content from winmail.dat

Removed:
poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/HMEFTest.java
Modified:
poi/site/src/documentation/content/xdocs/changes.xml
poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Types.java
poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestCompressedRTF.java
poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestHMEFMessage.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/attribute/TestMAPIAttributes.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/attribute/TestTNEFAttributes.java

poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/dev/TestHMEFDumper.java

Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1870692=1870691=1870692=diff
==
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Sun Dec  1 21:06:54 
2019
@@ -92,6 +92,7 @@
 Add, insert and remove 
columns on XSLFTable
 Produce 
valid PPTX file with several chart series
 Add Doughnut chart data 
series support
+HMEFContentsExtractor fails to extract content from 
winmail.dat
   
 
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Types.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Types.java?rev=1870692=1870691=1870692=diff
==
--- poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Types.java 
(original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Types.java Sun 
Dec  1 21:06:54 2019
@@ -26,8 +26,8 @@ import java.util.Map;
  * 
http://msdn.microsoft.com/en-us/library/microsoft.exchange.data.contenttypes.tnef.tnefpropertytype%28v=EXCHG.140%29.aspx
  */
 public final class Types {
-private static Map builtInTypes = new HashMap<>();
-private static Map customTypes = new HashMap<>();
+private static final Map builtInTypes = new HashMap<>();
+private static final Map customTypes = new HashMap<>();
 
 /** Unspecified */
 public static final MAPIType UNSPECIFIED = new MAPIType(0x,
@@ -119,7 +119,7 @@ public final class Types {
  * Is this type a fixed-length type, or a variable-length one?
  */
 public boolean isFixedLength() {
-return (length != -1) && (length <= 8);
+return ((length != -1) && (length <= 8)) || (id == 
Types.CLS_ID.id);
 }
 
 public int getId() {
@@ -132,8 +132,7 @@ public final class Types {
 
 @Override
 public String toString() {
-return id + " / 0x" + asFileEnding() + " - " + name + " @ "
-+ length;
+return id + " / 0x" + asFileEnding() + " - " + name + " @ " + 
length;
 }
 
 /**

Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java?rev=1870692=1870691=1870692=diff
==
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java 
(original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hmef/TestAttachments.java 
Sun Dec  1 21:06:54 2019
@@ -17,101 +17,117 @@
 
 package org.apache.poi.hmef;
 
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Locale;
 
+import org.apache.poi.POIDataSamples;
 import org.apache.poi.util.LocaleUtil;
+import org.junit.Before;
+import org.junit.Test;
+
+public final class TestAttachments {
+protected static final POIDataSamples _samples = 
POIDataSamples.getHMEFInstance();
+
+
+private HMEFMessage quick;
 
-public final class TestAttachments extends HMEFTest {
-   private HMEFMessage quick;
-   
-   @Override
-   protected void setUp() throws Exception {
-  super.setUp();
-  
-  quick = new HMEFMessage(
-_samples.openResourceAsStream("quick-winmail.dat")
-  );
-   }
-
-   /**
-* Check the file is as we expect
-*/
-   public void testCounts() throws Exception {
-  // Should have 5 attachments
-  assertEquals(5, quick.getAttachments().size());
-   }
-   
-   /

svn commit: r1870671 - in /poi/trunk: build.gradle build.xml jenkins/create_jobs.groovy sonar/pom.xml

2019-12-01 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  1 11:42:09 2019
New Revision: 1870671

URL: http://svn.apache.org/viewvc?rev=1870671=rev
Log:
Update Jacoco version and activate it again in the Sonar run

Modified:
poi/trunk/build.gradle
poi/trunk/build.xml
poi/trunk/jenkins/create_jobs.groovy
poi/trunk/sonar/pom.xml

Modified: poi/trunk/build.gradle
URL: 
http://svn.apache.org/viewvc/poi/trunk/build.gradle?rev=1870671=1870670=1870671=diff
==
--- poi/trunk/build.gradle (original)
+++ poi/trunk/build.gradle Sun Dec  1 11:42:09 2019
@@ -145,7 +145,7 @@ subprojects {
 }
 
 jacoco {
-toolVersion = '0.8.3'
+toolVersion = '0.8.5'
 }
 
 // ensure the build-dir exists

Modified: poi/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/poi/trunk/build.xml?rev=1870671=1870670=1870671=diff
==
--- poi/trunk/build.xml (original)
+++ poi/trunk/build.xml Sun Dec  1 11:42:09 2019
@@ -260,8 +260,8 @@ under the License.
   
value="${repository.m2}/maven2/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar"/>
 
 
-
-
+
+
 
 
 
@@ -662,6 +662,7 @@ under the License.
 
 
 
+
 
 
 
@@ -669,6 +670,7 @@ under the License.
 
 
 
+
 
 
 

Modified: poi/trunk/jenkins/create_jobs.groovy
URL: 
http://svn.apache.org/viewvc/poi/trunk/jenkins/create_jobs.groovy?rev=1870671=1870670=1870671=diff
==
--- poi/trunk/jenkins/create_jobs.groovy (original)
+++ poi/trunk/jenkins/create_jobs.groovy Sun Dec  1 11:42:09 2019
@@ -128,8 +128,6 @@ def apicheckDesc = '''
 
 '''
 
-def sonarOptions = '-Dsonar.projectKey=poi-parent -Dsonar.organization=apache 
-Dsonar.host.url=https://sonarcloud.io '
-
 def sonarDesc = '''
 
 Findbugs 
report of latest build -
@@ -295,7 +293,11 @@ poijobs.each { poijob ->
 */
 maven {
 if (poijob.sonar) {
-goals('compile sonar:sonar 
-Dsonar.login=${POI_SONAR_TOKEN} ' + sonarOptions)
+goals('clean package sonar:sonar')
+property('sonar.host.url', 'https://sonarcloud.io')
+property('sonar.login', '${POI_SONAR_TOKEN}')
+property('sonar.projectKey', 'poi-parent')
+property('sonar.organization', 'apache')
 } else {
 goals('package')
 }
@@ -365,7 +367,10 @@ poijobs.each { poijob ->
 
 gradle {
 switches('-PenableSonar')
-switches('-Dsonar.login=${POI_SONAR_TOKEN} ' + 
sonarOptions)
+switches('-Dsonar.host.url=https://sonarcloud.io')
+switches('-Dsonar.login=${POI_SONAR_TOKEN}')
+switches('-Dsonar.projectKey=poi-parent')
+switches('-Dsonar.organization=apache')
 tasks('sonarqube')
 useWrapper(false)
 }

Modified: poi/trunk/sonar/pom.xml
URL: 
http://svn.apache.org/viewvc/poi/trunk/sonar/pom.xml?rev=1870671=1870670=1870671=diff
==
--- poi/trunk/sonar/pom.xml (original)
+++ poi/trunk/sonar/pom.xml Sun Dec  1 11:42:09 2019
@@ -136,7 +136,21 @@
 
 org.jacoco
 jacoco-maven-plugin
-0.8.2
+0.8.5
+
+
+
+prepare-agent
+
+
+
+report
+prepare-package
+
+report
+
+
+
 
 
 



-
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org



svn commit: r1870657 - in /poi/trunk/src: java/org/apache/poi/hssf/record/ java/org/apache/poi/poifs/crypt/ java/org/apache/poi/util/ ooxml/java/org/apache/poi/xssf/extractor/

2019-11-30 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  1 02:05:51 2019
New Revision: 1870657

URL: http://svn.apache.org/viewvc?rev=1870657=rev
Log:
Sonar Fixes - fix/annotate type "vulnerability" / severity "blocker"

Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/RecordFactoryInputStream.java
poi/trunk/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java
poi/trunk/src/java/org/apache/poi/poifs/crypt/Decryptor.java
poi/trunk/src/java/org/apache/poi/util/StaxHelper.java
poi/trunk/src/java/org/apache/poi/util/XMLHelper.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java

Modified: 
poi/trunk/src/java/org/apache/poi/hssf/record/RecordFactoryInputStream.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/RecordFactoryInputStream.java?rev=1870657=1870656=1870657=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/RecordFactoryInputStream.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/RecordFactoryInputStream.java 
Sun Dec  1 02:05:51 2019
@@ -102,6 +102,7 @@ public final class RecordFactoryInputStr
_lastRecord = rec;
}
 
+   @SuppressWarnings({"squid:S2068"})
public RecordInputStream createDecryptingStream(InputStream 
original) {
 String userPassword = Biff8EncryptionKey.getCurrentUserPassword();
if (userPassword == null) {

Modified: poi/trunk/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java?rev=1870657=1870656=1870657=diff
==
--- poi/trunk/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/poifs/crypt/CryptoFunctions.java Sun Dec  
1 02:05:51 2019
@@ -101,6 +101,7 @@ public class CryptoFunctions {
  *if false the n-1 hash value is applied first
  * @return the hashed password
  */
+@SuppressWarnings({"squid:S2068"})
 public static byte[] hashPassword(String password, HashAlgorithm 
hashAlgorithm, byte[] salt, int spinCount, boolean iteratorFirst) {
 // If no password was given, use the default
 if (password == null) {

Modified: poi/trunk/src/java/org/apache/poi/poifs/crypt/Decryptor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/crypt/Decryptor.java?rev=1870657=1870656=1870657=diff
==
--- poi/trunk/src/java/org/apache/poi/poifs/crypt/Decryptor.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/crypt/Decryptor.java Sun Dec  1 
02:05:51 2019
@@ -33,6 +33,7 @@ import org.apache.poi.poifs.filesystem.P
 import org.apache.poi.util.GenericRecordUtil;
 
 public abstract class Decryptor implements Cloneable, GenericRecord {
+@SuppressWarnings({"squid:S2068"})
 public static final String DEFAULT_PASSWORD="VelvetSweatshop";
 public static final String DEFAULT_POIFS_ENTRY="EncryptedPackage";
 

Modified: poi/trunk/src/java/org/apache/poi/util/StaxHelper.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/StaxHelper.java?rev=1870657=1870656=1870657=diff
==
--- poi/trunk/src/java/org/apache/poi/util/StaxHelper.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/StaxHelper.java Sun Dec  1 02:05:51 
2019
@@ -17,6 +17,8 @@
 
 package org.apache.poi.util;
 
+import java.util.function.Consumer;
+
 import javax.xml.stream.XMLEventFactory;
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLOutputFactory;
@@ -28,17 +30,19 @@ import javax.xml.stream.XMLOutputFactory
 public final class StaxHelper {
 private static final POILogger logger = 
POILogFactory.getLogger(StaxHelper.class);
 
-private StaxHelper() {}
+private StaxHelper() {
+}
 
 /**
  * Creates a new StAX XMLInputFactory, with sensible defaults
  */
+@SuppressWarnings({"squid:S2755"})
 public static XMLInputFactory newXMLInputFactory() {
 XMLInputFactory factory = XMLInputFactory.newInstance();
-trySetProperty(factory, XMLInputFactory.IS_NAMESPACE_AWARE, true);
-trySetProperty(factory, XMLInputFactory.IS_VALIDATING, false);
-trySetProperty(factory, XMLInputFactory.SUPPORT_DTD, false);
-trySetProperty(factory, 
XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+trySet(XMLInputFactory.IS_NAMESPACE_AWARE, (n) -> 
factory.setProperty(n, true));
+trySet(XMLInputFactory.IS_VALIDATING, (n) -> factory.setProperty(n, 
false));
+trySe

svn commit: r1870655 - in /poi/trunk/src: examples/src/org/apache/poi/hssf/view/brush/ examples/src/org/apache/poi/ss/examples/html/ java/org/apache/poi/ddf/ java/org/apache/poi/hpsf/ java/org/apache/

2019-11-30 Thread kiwiwings
Author: kiwiwings
Date: Sun Dec  1 00:07:48 2019
New Revision: 1870655

URL: http://svn.apache.org/viewvc?rev=1870655=rev
Log:
change package.html to package-info.java

Added:
poi/trunk/src/examples/src/org/apache/poi/hssf/view/brush/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/examples/src/org/apache/poi/hssf/view/brush/package.html
poi/trunk/src/examples/src/org/apache/poi/ss/examples/html/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/examples/src/org/apache/poi/ss/examples/html/package.html
poi/trunk/src/java/org/apache/poi/ddf/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/ddf/package.html
poi/trunk/src/java/org/apache/poi/hpsf/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hpsf/package.html
poi/trunk/src/java/org/apache/poi/hpsf/wellknown/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hpsf/wellknown/package.html
poi/trunk/src/java/org/apache/poi/hssf/dev/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hssf/dev/package.html
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/package.html
poi/trunk/src/java/org/apache/poi/hssf/model/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hssf/model/package.html
poi/trunk/src/java/org/apache/poi/hssf/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hssf/package.html
poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/package.html
poi/trunk/src/java/org/apache/poi/hssf/record/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hssf/record/package.html
poi/trunk/src/java/org/apache/poi/hssf/usermodel/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hssf/usermodel/package.html
poi/trunk/src/java/org/apache/poi/hssf/util/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/hssf/util/package.html
poi/trunk/src/java/org/apache/poi/ss/format/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/ss/format/package.html
poi/trunk/src/java/org/apache/poi/ss/formula/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/ss/formula/package.html
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/package.html
poi/trunk/src/java/org/apache/poi/util/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/java/org/apache/poi/util/package.html
poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/package.html
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/package-info.java
  - copied, changed from r1870654, 
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/package.html
Removed:
poi/trunk/src/examples/src/org/apache/poi/hssf/view/brush/package.html
poi/trunk/src/examples/src/org/apache/poi/ss/examples/html/package.html
poi/trunk/src/java/org/apache/poi/ddf/package.html
poi/trunk/src/java/org/apache/poi/hpsf/package.html
poi/trunk/src/java/org/apache/poi/hpsf/wellknown/package.html
poi/trunk/src/java/org/apache/poi/hssf/dev/package.html
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/package.html
poi/trunk/src/java/org/apache/poi/hssf/model/package.html
poi/trunk/src/java/org/apache/poi/hssf/package.html
poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/package.html
poi/trunk/src/java/org/apache/poi/hssf/record/package.html
poi/trunk/src/java/org/apache/poi/hssf/usermodel/package.html
poi/trunk/src/java/org/apache/poi/hssf/util/package.html
poi/trunk/src/java/org/apache/poi/ss/format/package.html
poi/trunk/src/java/org/apache/poi/ss/formula/package.html
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/package.html
poi/trunk/src/java/org/apache/poi/util/package.html
poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/package.html
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/package.html

Copied: 
poi/trunk/src/examples/src/org/apache/poi/hssf/view/brush/package-info.java 
(from r1870654, 
poi/trunk/src/examples/src/org/apache/poi/hssf/view/brush/package.html)
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/view/brush/package-info.java?p2=poi/trunk/src/examples/src/org/apache/poi/hssf/view/brush/package-info.java=poi/trunk/src

svn commit: r1870653 - in /poi/trunk/src: examples/src/org/apache/poi/crypt/examples/ examples/src/org/apache/poi/hslf/examples/ examples/src/org/apache/poi/hssf/view/ examples/src/org/apache/poi/ss/e

2019-11-30 Thread kiwiwings
Author: kiwiwings
Date: Sat Nov 30 23:00:08 2019
New Revision: 1870653

URL: http://svn.apache.org/viewvc?rev=1870653=rev
Log:
Sonar fixes - use try-with-resources

Modified:

poi/trunk/src/examples/src/org/apache/poi/crypt/examples/OOXMLPasswordsTry.java
poi/trunk/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java
poi/trunk/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java
poi/trunk/src/examples/src/org/apache/poi/hssf/view/SViewer.java

poi/trunk/src/examples/src/org/apache/poi/ss/examples/ConditionalFormats.java

poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/ChartFromScratch.java
poi/trunk/src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java
poi/trunk/src/java/org/apache/poi/hssf/extractor/ExcelExtractor.java

poi/trunk/src/java/org/apache/poi/poifs/crypt/standard/StandardDecryptor.java

poi/trunk/src/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSLister.java
poi/trunk/src/java/org/apache/poi/poifs/filesystem/Ole10Native.java
poi/trunk/src/java/org/apache/poi/poifs/macros/VBAMacroExtractor.java
poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/PackageHelper.java

poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java
poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/dev/VSDDumper.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SlideIdListing.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/extractor/ImageExtractor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/HWPFDocumentCore.java
poi/trunk/src/testcases/org/apache/poi/hssf/dev/TestBiffDrawingToXml.java

Modified: 
poi/trunk/src/examples/src/org/apache/poi/crypt/examples/OOXMLPasswordsTry.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/crypt/examples/OOXMLPasswordsTry.java?rev=1870653=1870652=1870653=diff
==
--- 
poi/trunk/src/examples/src/org/apache/poi/crypt/examples/OOXMLPasswordsTry.java 
(original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/crypt/examples/OOXMLPasswordsTry.java 
Sat Nov 30 23:00:08 2019
@@ -62,30 +62,30 @@ public class OOXMLPasswordsTry implement
 }
 
 public String tryAll(File wordfile) throws IOException, 
GeneralSecurityException {
-// Load
-BufferedReader r = new BufferedReader(new FileReader(wordfile));
-long start = System.currentTimeMillis();
-int count = 0;
-
-// Try each password in turn, reporting progress
 String valid = null;
-String password;
-while ((password = r.readLine()) != null) {
-if (isValid(password)) {
-valid = password;
-break;
-}
-count++;
-
-if (count % 1000 == 0) {
-int secs = (int)((System.currentTimeMillis() - start) / 1000);
-System.out.println("Done " + count + " passwords, " +
-   secs + " seconds, last password " + 
password);
+// Load
+try (BufferedReader r = new BufferedReader(new FileReader(wordfile))) {
+long start = System.currentTimeMillis();
+int count = 0;
+
+// Try each password in turn, reporting progress
+String password;
+while ((password = r.readLine()) != null) {
+if (isValid(password)) {
+valid = password;
+break;
+}
+count++;
+
+if (count % 1000 == 0) {
+int secs = (int) ((System.currentTimeMillis() - start) / 
1000);
+System.out.println("Done " + count + " passwords, " +
+   secs + " seconds, last password 
" + password);
+}
 }
+
 }
-
 // Tidy and return (null if no match)
-r.close();
 return valid;
 }
 public boolean isValid(String password) throws GeneralSecurityException {
@@ -103,10 +103,11 @@ public class OOXMLPasswordsTry implement
 
 System.out.println("Trying passwords from " + words + " against " + 
ooxml);
 System.out.println();
-
-OOXMLPasswordsTry pt = new OOXMLPasswordsTry(ooxml);
-String password = pt.tryAll(words);
-pt.close();
+
+String password;
+try (OOXMLPasswords

svn commit: r1870600 - in /poi/trunk/src: java/org/apache/poi/hssf/extractor/ java/org/apache/poi/hssf/record/ java/org/apache/poi/hssf/usermodel/ java/org/apache/poi/poifs/dev/ java/org/apache/poi/po

2019-11-29 Thread kiwiwings
Author: kiwiwings
Date: Fri Nov 29 23:57:35 2019
New Revision: 1870600

URL: http://svn.apache.org/viewvc?rev=1870600=rev
Log:
Replace StringBuffer with StringBuilder

Modified:
poi/trunk/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java
poi/trunk/src/java/org/apache/poi/hssf/record/PageBreakRecord.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPalette.java
poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSViewEngine.java
poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSViewer.java
poi/trunk/src/java/org/apache/poi/poifs/filesystem/DocumentDescriptor.java
poi/trunk/src/java/org/apache/poi/poifs/filesystem/POIFSDocumentPath.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/functions/Countif.java
poi/trunk/src/java/org/apache/poi/util/GenericRecordJsonWriter.java
poi/trunk/src/java/org/apache/poi/util/GenericRecordXmlWriter.java
poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFProperty.java
poi/trunk/src/scratchpad/src/org/apache/poi/hpbf/dev/HPBFDumper.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/extractor/QuickButCruddyTextExtractor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/AnimationInfoAtom.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExMediaAtom.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjAtom.java

poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/HeadersFootersAtom.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextBytesAtom.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextCharsAtom.java
poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/ByteChunk.java
poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/MAPIProperty.java

poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/extractor/OutlookTextExtactor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/extractor/Word6Extractor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/extractor/WordExtractor.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/EscherRecordHolder.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/FSPATable.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/FLDAbstractType.java

poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/types/TLPAbstractType.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/BorderCode.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java

Modified: 
poi/trunk/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java?rev=1870600=1870599=1870600=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java Fri 
Nov 29 23:57:35 2019
@@ -40,7 +40,11 @@ import org.apache.poi.hssf.record.OldShe
 import org.apache.poi.hssf.record.OldStringRecord;
 import org.apache.poi.hssf.record.RKRecord;
 import org.apache.poi.hssf.record.RecordInputStream;
-import org.apache.poi.poifs.filesystem.*;
+import org.apache.poi.poifs.filesystem.DirectoryNode;
+import org.apache.poi.poifs.filesystem.DocumentNode;
+import org.apache.poi.poifs.filesystem.FileMagic;
+import org.apache.poi.poifs.filesystem.NotOLE2FileException;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.util.IOUtils;
 
@@ -219,7 +223,7 @@ public class OldExcelExtractor implement
  * @return the text contents of the file
  */
 public String getText() {
-StringBuffer text = new StringBuffer();
+StringBuilder text = new StringBuilder();
 
 // To track formats and encodings
 CodepageRecord codepage = null;
@@ -306,7 +310,7 @@ public class OldExcelExtractor implement
 }
 }
 
-protected void handleNumericCell(StringBuffer text, double value) {
+protected void handleNumericCell(StringBuilder text, double value) {
 // TODO Need to fetch / use format strings
 text.append(value);
 text.append('\n');

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=1870600=1870599=1870600=diff
==
--- poi/trunk/src/java/org/apache/poi/hssf/record/PageBreakRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record

<    5   6   7   8   9   10   11   12   13   14   >