You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2015/10/01 01:06:40 UTC

svn commit: r1706169 - in /poi/trunk/src: examples/src/org/apache/poi/hssf/view/ examples/src/org/apache/poi/xssf/usermodel/examples/ integrationtest/org/apache/poi/stress/ java/org/apache/poi/ddf/ java/org/apache/poi/hpsf/ java/org/apache/poi/hssf/mod...

Author: kiwiwings
Date: Wed Sep 30 23:06:39 2015
New Revision: 1706169

URL: http://svn.apache.org/viewvc?rev=1706169&view=rev
Log:
sonar fixes

Very interesting was the exception swallowing in PackagePropertiesPart. When it was properly thrown, it already led to various errors in the junits test - I've fixed the handling for at least the ones which are in our test set

Added:
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShow.java
      - copied, changed from r1705778, poi/trunk/src/ooxml/java/org/apache/poi/xslf/XSLFSlideShow.java
Removed:
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/XSLFSlideShow.java
Modified:
    poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVSheetTable.java
    poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java
    poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java
    poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java
    poi/trunk/src/java/org/apache/poi/hpsf/Section.java
    poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java
    poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java
    poi/trunk/src/java/org/apache/poi/hssf/record/FilePassRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/IndexRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/CFRecordsAggregate.java
    poi/trunk/src/java/org/apache/poi/poifs/filesystem/BlockStore.java
    poi/trunk/src/java/org/apache/poi/poifs/property/NPropertyTable.java
    poi/trunk/src/java/org/apache/poi/sl/usermodel/Insets2D.java
    poi/trunk/src/ooxml/java/org/apache/poi/extractor/ExtractorFactory.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbeded.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFSlideShow.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIAttribute.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java

Modified: poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVSheetTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVSheetTable.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVSheetTable.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hssf/view/SVSheetTable.java Wed Sep 30 23:06:39 2015
@@ -163,7 +163,7 @@ public class SVSheetTable extends JTable
       Row row = sheet.getRow(i - sheet.getFirstRowNum());
       if (row != null) {
         short h = row.getHeight();
-        int height = Math.round(Math.max(1, h / (res / 70 * 20) + 3));
+        int height = (int)Math.round(Math.max(1., ((double)h) / (((double)res) / 70. * 20.) + 3.));
         System.out.printf("%d: %d (%d @ %d)%n", i, height, h, res);
         setRowHeight(i, height);
       }

Modified: poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java Wed Sep 30 23:06:39 2015
@@ -19,10 +19,10 @@ package org.apache.poi.xssf.usermodel.ex
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackagePart;
+import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
 import org.apache.poi.hwpf.HWPFDocument;
-import org.apache.poi.xslf.XSLFSlideShow;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 
 import java.io.InputStream;

Modified: poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java (original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java Wed Sep 30 23:06:39 2015
@@ -24,9 +24,9 @@ import java.io.FileInputStream;
 import java.io.InputStream;
 
 import org.apache.poi.extractor.ExtractorFactory;
-import org.apache.poi.xslf.XSLFSlideShow;
 import org.apache.poi.xslf.extractor.XSLFPowerPointExtractor;
 import org.apache.poi.xslf.usermodel.XMLSlideShow;
+import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 import org.junit.Test;
 
 public class XSLFFileHandler extends SlideShowHandler {

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java Wed Sep 30 23:06:39 2015
@@ -27,7 +27,7 @@ import org.apache.poi.util.RecordFormatE
  *  Escher format. We don't attempt to understand the contents, since
  *  they will be in the parent's format, not Escher format.
  */
-public class EscherTextboxRecord extends EscherRecord implements Cloneable {
+public final class EscherTextboxRecord extends EscherRecord implements Cloneable {
     public static final short RECORD_ID = (short)0xF00D;
     public static final String RECORD_DESCRIPTION = "msofbtClientTextbox";
 

Modified: poi/trunk/src/java/org/apache/poi/hpsf/Section.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/Section.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/Section.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/Section.java Wed Sep 30 23:06:39 2015
@@ -318,6 +318,38 @@ public class Section
                 return 1;
         }
 
+        
+        
+        public int hashCode() {
+            final int prime = 31;
+            int result = 1;
+            result = prime * result + id;
+            result = prime * result + length;
+            result = prime * result + offset;
+            return result;
+        }
+
+
+
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (obj == null)
+                return false;
+            if (getClass() != obj.getClass())
+                return false;
+            PropertyListEntry other = (PropertyListEntry) obj;
+            if (id != other.id)
+                return false;
+            if (length != other.length)
+                return false;
+            if (offset != other.offset)
+                return false;
+            return true;
+        }
+
+
+
         public String toString()
         {
             final StringBuffer b = new StringBuffer();

Modified: poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java Wed Sep 30 23:06:39 2015
@@ -164,7 +164,7 @@ public final class InternalSheet {
         int dimsloc = -1;
 
         if (rs.peekNextSid() != BOFRecord.sid) {
-            throw new RuntimeException("BOF record expected");
+            throw new RecordFormatException("BOF record expected");
         }
         
         BOFRecord bof = (BOFRecord) rs.getNext();
@@ -210,7 +210,7 @@ public final class InternalSheet {
             if (RecordOrderer.isRowBlockRecord(recSid)) {
                 //only add the aggregate once
                 if (rra != null) {
-                    throw new RuntimeException("row/cell records found in the wrong place");
+                    throw new RecordFormatException("row/cell records found in the wrong place");
                 }
                 RowBlocksReader rbr = new RowBlocksReader(rs);
                 _mergedCellsTable.addRecords(rbr.getLooseMergedCells());
@@ -332,7 +332,7 @@ public final class InternalSheet {
             records.add(rec);
         }
         if (windowTwo == null) {
-            throw new RuntimeException("WINDOW2 was not found");
+            throw new RecordFormatException("WINDOW2 was not found");
         }
         if (_dimensions == null) {
             // Excel seems to always write the DIMENSION record, but tolerates when it is not present
@@ -393,7 +393,7 @@ public final class InternalSheet {
             try {
                 _destList.add((Record)r.clone());
             } catch (CloneNotSupportedException e) {
-                throw new RuntimeException(e);
+                throw new RecordFormatException(e);
             }
         }
     }
@@ -423,7 +423,7 @@ public final class InternalSheet {
                 Record rec = (Record) ((Record) rb).clone();
                 clonedRecords.add(rec);
             } catch (CloneNotSupportedException e) {
-                throw new RuntimeException(e);
+                throw new RecordFormatException(e);
             }
         }
         return createSheet(new RecordStream(clonedRecords, 0));

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=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java Wed Sep 30 23:06:39 2015
@@ -152,5 +152,5 @@ public abstract class CFHeaderBase exten
     }
 
     @Override
-    public abstract CFHeaderBase clone();
+    public abstract CFHeaderBase clone(); // NOSONAR
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/FilePassRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/FilePassRecord.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/FilePassRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/FilePassRecord.java Wed Sep 30 23:06:39 2015
@@ -41,10 +41,10 @@ public final class FilePassRecord extend
 	    void serialize(LittleEndianOutput out);
 	    int getDataSize();
 	    void appendToString(StringBuffer buffer);
-	    KeyData clone();
+	    KeyData clone(); // NOSONAR
 	} 
 	
-	public static class Rc4KeyData implements KeyData {
+	public static final class Rc4KeyData implements KeyData, Cloneable {
 	    private static final int ENCRYPTION_OTHER_RC4 = 1;
 	    private static final int ENCRYPTION_OTHER_CAPI_2 = 2;
 	    private static final int ENCRYPTION_OTHER_CAPI_3 = 3;
@@ -135,7 +135,7 @@ public final class FilePassRecord extend
         }
 	}
 
-	public static class XorKeyData implements KeyData {
+	public static final class XorKeyData implements KeyData, Cloneable {
 	    /**
 	     * key (2 bytes): An unsigned integer that specifies the obfuscation key. 
 	     * See [MS-OFFCRYPTO], 2.3.6.2 section, the first step of initializing XOR

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/IndexRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/IndexRecord.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/IndexRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/IndexRecord.java Wed Sep 30 23:06:39 2015
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianO
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public class IndexRecord extends StandardRecord implements Cloneable {
+public final class IndexRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x020B;
     private int                field_2_first_row;       // first row on the sheet
     private int                field_3_last_row_add1;   // last row

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/CFRecordsAggregate.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/CFRecordsAggregate.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/CFRecordsAggregate.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/CFRecordsAggregate.java Wed Sep 30 23:06:39 2015
@@ -28,6 +28,7 @@ import org.apache.poi.hssf.record.CFRule
 import org.apache.poi.hssf.record.CFRuleBase;
 import org.apache.poi.hssf.record.CFRuleRecord;
 import org.apache.poi.hssf.record.Record;
+import org.apache.poi.hssf.record.RecordFormatException;
 import org.apache.poi.ss.formula.FormulaShifter;
 import org.apache.poi.ss.formula.ptg.AreaErrPtg;
 import org.apache.poi.ss.formula.ptg.AreaPtg;
@@ -68,7 +69,7 @@ public final class CFRecordsAggregate ex
                     + " this file will cause problems with old Excel versions");
         }
         if (pRules.length != pHeader.getNumberOfConditionalFormats()) {
-            throw new RuntimeException("Mismatch number of rules");
+            throw new RecordFormatException("Mismatch number of rules");
         }
         header = pHeader;
         rules = new ArrayList<CFRuleBase>(pRules.length);
@@ -119,9 +120,9 @@ public final class CFRecordsAggregate ex
     public CFRecordsAggregate cloneCFAggregate() {
         CFRuleBase[] newRecs = new CFRuleBase[rules.size()];
         for (int i = 0; i < newRecs.length; i++) {
-            newRecs[i] = (CFRuleRecord) getRule(i).clone();
+            newRecs[i] = getRule(i).clone();
         }
-        return new CFRecordsAggregate((CFHeaderBase)header.clone(), newRecs);
+        return new CFRecordsAggregate(header.clone(), newRecs);
     }
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/poifs/filesystem/BlockStore.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/filesystem/BlockStore.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/filesystem/BlockStore.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/filesystem/BlockStore.java Wed Sep 30 23:06:39 2015
@@ -80,7 +80,7 @@ public abstract class BlockStore {
     protected class ChainLoopDetector {
        private boolean[] used_blocks;
        protected ChainLoopDetector(long rawSize) {
-          int numBlocks = (int)Math.ceil( rawSize / getBlockStoreBlockSize() );
+          int numBlocks = (int)Math.ceil( ((double)rawSize) / getBlockStoreBlockSize() );
           used_blocks = new boolean[numBlocks];
        }
        protected void claim(int offset) {

Modified: poi/trunk/src/java/org/apache/poi/poifs/property/NPropertyTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/property/NPropertyTable.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/property/NPropertyTable.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/property/NPropertyTable.java Wed Sep 30 23:06:39 2015
@@ -120,7 +120,7 @@ public final class NPropertyTable extend
     public int countBlocks()
     {
        int size = _properties.size() * POIFSConstants.PROPERTY_SIZE;
-       return (int)Math.ceil(size / _bigBigBlockSize.getBigBlockSize());
+       return (int)Math.ceil( ((double)size) / _bigBigBlockSize.getBigBlockSize());
     }
  
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/usermodel/Insets2D.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/usermodel/Insets2D.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/usermodel/Insets2D.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/usermodel/Insets2D.java Wed Sep 30 23:06:39 2015
@@ -21,7 +21,7 @@ package org.apache.poi.sl.usermodel;
  * This is a replacement for {@link java.awt.Insets} which works on doubles
  * instead of ints
  */
-public class Insets2D implements Cloneable {
+public final class Insets2D implements Cloneable {
 
     /**
      * The inset from the top.

Modified: poi/trunk/src/ooxml/java/org/apache/poi/extractor/ExtractorFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/extractor/ExtractorFactory.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/extractor/ExtractorFactory.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/extractor/ExtractorFactory.java Wed Sep 30 23:06:39 2015
@@ -55,9 +55,9 @@ import org.apache.poi.poifs.filesystem.N
 import org.apache.poi.poifs.filesystem.OPOIFSFileSystem;
 import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.apache.poi.xslf.XSLFSlideShow;
 import org.apache.poi.xslf.extractor.XSLFPowerPointExtractor;
 import org.apache.poi.xslf.usermodel.XSLFRelation;
+import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 import org.apache.poi.xssf.extractor.XSSFEventBasedExcelExtractor;
 import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
 import org.apache.poi.xssf.usermodel.XSSFRelation;

Modified: poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java Wed Sep 30 23:06:39 2015
@@ -48,6 +48,10 @@ public final class PackagePropertiesPart
 
 	public final static String NAMESPACE_DCTERMS_URI = "http://purl.org/dc/terms/";
 
+	private final static String DEFAULT_DATEFORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
+	private final static String ALTERNATIVE_DATEFORMAT = "yyyy-MM-dd'T'HH:mm:ss.SS'Z'";
+	
+	
 	/**
 	 * Constructor.
 	 *
@@ -386,8 +390,8 @@ public final class PackagePropertiesPart
 		try {
 			this.created = setDateValue(created);
 		} catch (InvalidFormatException e) {
-			new IllegalArgumentException("created  : "
-					+ e.getLocalizedMessage());
+			throw new IllegalArgumentException("created  : "
+					+ e.getLocalizedMessage(), e);
 		}
 	}
 
@@ -464,8 +468,8 @@ public final class PackagePropertiesPart
 		try {
 			this.lastPrinted = setDateValue(lastPrinted);
 		} catch (InvalidFormatException e) {
-			new IllegalArgumentException("lastPrinted  : "
-					+ e.getLocalizedMessage());
+			throw new IllegalArgumentException("lastPrinted  : "
+					+ e.getLocalizedMessage(), e);
 		}
 	}
 
@@ -488,8 +492,8 @@ public final class PackagePropertiesPart
 		try {
 			this.modified = setDateValue(modified);
 		} catch (InvalidFormatException e) {
-			new IllegalArgumentException("modified  : "
-					+ e.getLocalizedMessage());
+			throw new IllegalArgumentException("modified  : "
+					+ e.getLocalizedMessage(), e);
 		}
 	}
 
@@ -559,10 +563,18 @@ public final class PackagePropertiesPart
 		if (s == null || s.equals("")) {
 			return new Nullable<Date>();
 		}
-		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ROOT);
+		if (!s.endsWith("Z")) {
+		    s += "Z";
+		}
+		SimpleDateFormat df = new SimpleDateFormat(DEFAULT_DATEFORMAT, Locale.ROOT);
 		df.setTimeZone(LocaleUtil.TIMEZONE_UTC);
 		Date d = df.parse(s, new ParsePosition(0));
 		if (d == null) {
+		    df = new SimpleDateFormat(ALTERNATIVE_DATEFORMAT, Locale.ROOT);
+		    df.setTimeZone(LocaleUtil.TIMEZONE_UTC);
+		    d = df.parse(s, new ParsePosition(0));
+		}
+		if (d == null) {
 			throw new InvalidFormatException("Date not well formated");
 		}
 		return new Nullable<Date>(d);
@@ -585,7 +597,7 @@ public final class PackagePropertiesPart
 		   return "";
 		}
 		
-		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ROOT);
+		SimpleDateFormat df = new SimpleDateFormat(DEFAULT_DATEFORMAT, Locale.ROOT);
 		df.setTimeZone(LocaleUtil.TIMEZONE_UTC);
 		return df.format(date);
 	}

Modified: poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java Wed Sep 30 23:06:39 2015
@@ -28,6 +28,7 @@ import static org.apache.poi.poifs.crypt
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.math.BigInteger;
 import java.security.cert.CRLException;
 import java.security.cert.CertificateEncodingException;
@@ -324,21 +325,25 @@ public class XAdESXLSignatureFacet exten
     }
 
     private BigInteger getCrlNumber(X509CRL crl) {
+        byte[] crlNumberExtensionValue = crl.getExtensionValue(Extension.cRLNumber.getId());
+        if (null == crlNumberExtensionValue) {
+            return null;
+        }
+
         try {
-            byte[] crlNumberExtensionValue = crl.getExtensionValue(Extension.cRLNumber.getId());
-            if (null == crlNumberExtensionValue) {
-                return null;
+            ASN1InputStream asn1IS1 = null, asn1IS2 = null;
+            try {
+                asn1IS1 = new ASN1InputStream(crlNumberExtensionValue);
+                ASN1OctetString octetString = (ASN1OctetString)asn1IS1.readObject();
+                byte[] octets = octetString.getOctets();
+                asn1IS2 = new ASN1InputStream(octets);
+                ASN1Integer integer = (ASN1Integer)asn1IS2.readObject();
+                return integer.getPositiveValue();
+            } finally {
+                asn1IS2.close();
+                asn1IS1.close();
             }
-
-            @SuppressWarnings("resource")
-            ASN1InputStream asn1InputStream = new ASN1InputStream(crlNumberExtensionValue);
-            ASN1OctetString octetString = (ASN1OctetString)asn1InputStream.readObject();
-            byte[] octets = octetString.getOctets();
-            asn1InputStream = new ASN1InputStream(octets);
-            ASN1Integer integer = (ASN1Integer)asn1InputStream.readObject();
-            BigInteger crlNumber = integer.getPositiveValue();
-            return crlNumber;
-        } catch (Exception e) {
+        } catch (IOException e) {
             throw new RuntimeException("I/O error: " + e.getMessage(), e);
         }
     }

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java Wed Sep 30 23:06:39 2015
@@ -22,7 +22,6 @@ import java.util.List;
 import org.apache.poi.POIXMLTextExtractor;
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.xslf.XSLFSlideShow;
 import org.apache.poi.xslf.usermodel.DrawingParagraph;
 import org.apache.poi.xslf.usermodel.DrawingTextBody;
 import org.apache.poi.xslf.usermodel.DrawingTextPlaceholder;
@@ -35,6 +34,7 @@ import org.apache.poi.xslf.usermodel.XSL
 import org.apache.poi.xslf.usermodel.XSLFSlide;
 import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
 import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
+import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 import org.apache.xmlbeans.XmlException;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTComment;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentAuthor;

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java Wed Sep 30 23:06:39 2015
@@ -49,7 +49,6 @@ import org.apache.poi.util.POILogFactory
 import org.apache.poi.util.POILogger;
 import org.apache.poi.util.PackageHelper;
 import org.apache.poi.util.Units;
-import org.apache.poi.xslf.XSLFSlideShow;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.XmlOptions;
@@ -124,12 +123,6 @@ implements SlideShow<XSLFShape,XSLFTextP
         }
     }
 
-    // TODO get rid of this method
-    @Deprecated
-    public XSLFSlideShow _getXSLFSlideShow() throws OpenXML4JException, IOException, XmlException{
-        return new XSLFSlideShow(getPackage());
-    }
-
     @Override
     protected void onDocumentRead() throws IOException {
         try {

Copied: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShow.java (from r1705778, poi/trunk/src/ooxml/java/org/apache/poi/xslf/XSLFSlideShow.java)
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShow.java?p2=poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShow.java&p1=poi/trunk/src/ooxml/java/org/apache/poi/xslf/XSLFSlideShow.java&r1=1705778&r2=1706169&rev=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/XSLFSlideShow.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShow.java Wed Sep 30 23:06:39 2015
@@ -14,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-package org.apache.poi.xslf;
+package org.apache.poi.xslf.usermodel;
 
 import java.io.IOException;
 import java.util.LinkedList;
@@ -28,8 +28,6 @@ import org.apache.poi.openxml4j.opc.Pack
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
 import org.apache.poi.util.Internal;
-import org.apache.poi.xslf.usermodel.XMLSlideShow;
-import org.apache.poi.xslf.usermodel.XSLFRelation;
 import org.apache.xmlbeans.XmlException;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentList;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTNotesSlide;

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbeded.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbeded.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbeded.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/TestEmbeded.java Wed Sep 30 23:06:39 2015
@@ -20,7 +20,7 @@
 package org.apache.poi;
 
 import org.apache.poi.util.IOUtils;
-import org.apache.poi.xslf.XSLFSlideShow;
+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;

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=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java Wed Sep 30 23:06:39 2015
@@ -20,7 +20,7 @@ import junit.framework.TestCase;
 
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.util.PackageHelper;
-import org.apache.poi.xslf.XSLFSlideShow;
+import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java Wed Sep 30 23:06:39 2015
@@ -16,12 +16,17 @@
 ==================================================================== */
 package org.apache.poi.extractor;
 
+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.assertTrue;
+import static org.junit.Assert.fail;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 
-import junit.framework.TestCase;
-
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.POIOLE2TextExtractor;
 import org.apache.poi.POITextExtractor;
@@ -43,40 +48,42 @@ import org.apache.poi.xslf.extractor.XSL
 import org.apache.poi.xssf.extractor.XSSFEventBasedExcelExtractor;
 import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
 /**
  * Test that the extractor factory plays nicely
  */
-public class TestExtractorFactory extends TestCase {
-    private File txt;
+public class TestExtractorFactory {
+    private static File txt;
 
-    private File xls;
-    private File xlsx;
-    private File xlsxStrict;
-    private File xltx;
-    private File xlsEmb;
-
-    private File doc;
-    private File doc6;
-    private File doc95;
-    private File docx;
-    private File dotx;
-    private File docEmb;
-    private File docEmbOOXML;
-
-    private File ppt;
-    private File pptx;
-
-    private File msg;
-    private File msgEmb;
-    private File msgEmbMsg;
+    private static File xls;
+    private static File xlsx;
+    private static File xlsxStrict;
+    private static File xltx;
+    private static File xlsEmb;
+
+    private static File doc;
+    private static File doc6;
+    private static File doc95;
+    private static File docx;
+    private static File dotx;
+    private static File docEmb;
+    private static File docEmbOOXML;
+
+    private static File ppt;
+    private static File pptx;
+
+    private static File msg;
+    private static File msgEmb;
+    private static File msgEmbMsg;
 
-    private File vsd;
-    private File vsdx;
+    private static File vsd;
+    private static File vsdx;
 
-    private File pub;
+    private static File pub;
 
-    private File getFileAndCheck(POIDataSamples samples, String name) {
+    private static File getFileAndCheck(POIDataSamples samples, String name) {
         File file = samples.getFile(name);
 
         assertNotNull("Did not get a file for " + name, file);
@@ -85,9 +92,9 @@ public class TestExtractorFactory extend
 
         return file;
     }
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+
+    @BeforeClass
+    public static void setUp() throws Exception {
 
         POIDataSamples ssTests = POIDataSamples.getSpreadSheetInstance();
         xls = getFileAndCheck(ssTests, "SampleSS.xls");
@@ -123,6 +130,7 @@ public class TestExtractorFactory extend
         msgEmbMsg = getFileAndCheck(olTests, "attachment_msg_pdf.msg");
     }
 
+    @Test
     public void testFile() throws Exception {
         // Excel
         POITextExtractor xlsExtractor = ExtractorFactory.createExtractor(xls);
@@ -297,6 +305,7 @@ public class TestExtractorFactory extend
         }
     }
 
+    @Test
     public void testInputStream() throws Exception {
         // Excel
         assertTrue(
@@ -421,6 +430,7 @@ public class TestExtractorFactory extend
         }
     }
 
+    @Test
     public void testPOIFS() throws Exception {
         // Excel
         assertTrue(
@@ -501,6 +511,7 @@ public class TestExtractorFactory extend
         }
     }
 
+    @Test
     public void testPackage() throws Exception {
         // Excel
         POIXMLTextExtractor extractor = ExtractorFactory.createExtractor(OPCPackage.open(xlsx.toString(), PackageAccess.READ));
@@ -550,6 +561,7 @@ public class TestExtractorFactory extend
         }
     }
 
+    @Test
     public void testPreferEventBased() throws Exception {
         assertFalse(ExtractorFactory.getPreferEventExtractor());
         assertFalse(ExtractorFactory.getThreadPrefersEventExtractors());
@@ -635,6 +647,7 @@ public class TestExtractorFactory extend
      *  does poifs embeded, but will do ooxml ones 
      *  at some point.
      */
+    @Test
     public void testEmbeded() throws Exception {
         POIOLE2TextExtractor ext;
         POITextExtractor[] embeds;

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java Wed Sep 30 23:06:39 2015
@@ -37,7 +37,6 @@ import java.util.List;
 import javax.imageio.ImageIO;
 
 import org.apache.poi.POIXMLDocumentPart;
-import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.sl.usermodel.PictureData.PictureType;
 import org.apache.poi.xslf.usermodel.DrawingParagraph;
 import org.apache.poi.xslf.usermodel.DrawingTextBody;
@@ -56,7 +55,6 @@ import org.junit.Test;
 public class TestXSLFBugs {
 
     @Test
-    @SuppressWarnings("deprecation")
     public void bug51187() throws Exception {
        XMLSlideShow ss1 = XSLFTestDataSamples.openSampleDocument("51187.pptx");
        
@@ -64,29 +62,26 @@ public class TestXSLFBugs {
        
        // Check the relations on it
        // Note - rId3 is a self reference
-       PackagePart slidePart = ss1._getXSLFSlideShow().getSlidePart(
-             ss1._getXSLFSlideShow().getSlideReferences().getSldIdArray(0)
-       );
-       assertEquals("/ppt/slides/slide1.xml", slidePart.getPartName().toString());
-       assertEquals("/ppt/slideLayouts/slideLayout12.xml", slidePart.getRelationship("rId1").getTargetURI().toString());
-       assertEquals("/ppt/notesSlides/notesSlide1.xml", slidePart.getRelationship("rId2").getTargetURI().toString());
-       assertEquals("/ppt/slides/slide1.xml", slidePart.getRelationship("rId3").getTargetURI().toString());
-       assertEquals("/ppt/media/image1.png", slidePart.getRelationship("rId4").getTargetURI().toString());
+       XSLFSlide slide0 = ss1.getSlides().get(0);
+
+       assertEquals("/ppt/slides/slide1.xml", slide0.getPackagePart().getPartName().toString());
+       assertEquals("/ppt/slideLayouts/slideLayout12.xml", slide0.getRelationById("rId1").getPackageRelationship().getTargetURI().toString());
+       assertEquals("/ppt/notesSlides/notesSlide1.xml", slide0.getRelationById("rId2").getPackageRelationship().getTargetURI().toString());
+       assertEquals("/ppt/slides/slide1.xml", slide0.getRelationById("rId3").getPackageRelationship().getTargetURI().toString());
+       assertEquals("/ppt/media/image1.png", slide0.getRelationById("rId4").getPackageRelationship().getTargetURI().toString());
        
        // Save and re-load
        XMLSlideShow ss2 = XSLFTestDataSamples.writeOutAndReadBack(ss1);
        ss1.close();
        assertEquals(1, ss2.getSlides().size());
        
-       slidePart = ss2._getXSLFSlideShow().getSlidePart(
-             ss2._getXSLFSlideShow().getSlideReferences().getSldIdArray(0)
-       );
-       assertEquals("/ppt/slides/slide1.xml", slidePart.getPartName().toString());
-       assertEquals("/ppt/slideLayouts/slideLayout12.xml", slidePart.getRelationship("rId1").getTargetURI().toString());
-       assertEquals("/ppt/notesSlides/notesSlide1.xml", slidePart.getRelationship("rId2").getTargetURI().toString());
+       slide0 = ss2.getSlides().get(0);
+       assertEquals("/ppt/slides/slide1.xml", slide0.getPackagePart().getPartName().toString());
+       assertEquals("/ppt/slideLayouts/slideLayout12.xml", slide0.getRelationById("rId1").getPackageRelationship().getTargetURI().toString());
+       assertEquals("/ppt/notesSlides/notesSlide1.xml", slide0.getRelationById("rId2").getPackageRelationship().getTargetURI().toString());
        // TODO Fix this
-       assertEquals("/ppt/slides/slide1.xml", slidePart.getRelationship("rId3").getTargetURI().toString());
-       assertEquals("/ppt/media/image1.png", slidePart.getRelationship("rId4").getTargetURI().toString());
+       assertEquals("/ppt/slides/slide1.xml", slide0.getRelationById("rId3").getPackageRelationship().getTargetURI().toString());
+       assertEquals("/ppt/media/image1.png", slide0.getRelationById("rId4").getPackageRelationship().getTargetURI().toString());
        
        ss2.close();
     }

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFSlideShow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFSlideShow.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFSlideShow.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFSlideShow.java Wed Sep 30 23:06:39 2015
@@ -22,6 +22,7 @@ import org.apache.poi.POIDataSamples;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.xslf.usermodel.XSLFRelation;
+import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideIdListEntry;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideMasterIdListEntry;
 

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java Wed Sep 30 23:06:39 2015
@@ -20,7 +20,7 @@ import org.apache.poi.POIDataSamples;
 import org.apache.poi.POITextExtractor;
 import org.apache.poi.extractor.ExtractorFactory;
 import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.xslf.XSLFSlideShow;
+import org.apache.poi.xslf.usermodel.XSLFSlideShow;
 
 import junit.framework.TestCase;
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIAttribute.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIAttribute.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIAttribute.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIAttribute.java Wed Sep 30 23:06:39 2015
@@ -111,7 +111,7 @@ public class MAPIAttribute {
          boolean isMV = false;
          boolean isVL = false;
          int typeId = typeAndMV;
-         if( (typeAndMV & Types.MULTIVALUED_FLAG) > 0 ) {
+         if( (typeAndMV & Types.MULTIVALUED_FLAG) != 0 ) {
             isMV = true;
             typeId -= Types.MULTIVALUED_FLAG;
          }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java?rev=1706169&r1=1706168&r2=1706169&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java Wed Sep 30 23:06:39 2015
@@ -17,7 +17,6 @@
 
 package org.apache.poi.hslf.model.textproperties;
 
-import org.apache.poi.hslf.record.Record;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 




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