Author: kiwiwings
Date: Sun May 27 22:01:33 2018
New Revision: 1832359
URL: http://svn.apache.org/viewvc?rev=1832359&view=rev
Log:
#62355 - unsplit packages - 2 - modified classes (not only imports)
Added:
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java
(with props)
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java
(with props)
Modified:
poi/site/src/documentation/content/xdocs/faq.xml
poi/trunk/build.xml
poi/trunk/sonar/ooxml/pom.xml
poi/trunk/sonar/pom.xml
poi/trunk/src/integrationtest/org/apache/poi/stress/SpreadsheetHandler.java
poi/trunk/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java
poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java
poi/trunk/src/java/org/apache/poi/ss/usermodel/ObjectData.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShowFactory.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java
poi/trunk/src/ooxml/testcases/org/apache/poi/ss/TestWorkbookFactory.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/DefaultFontReplacer.java
Modified: poi/site/src/documentation/content/xdocs/faq.xml
URL:
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/faq.xml?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/faq.xml (original)
+++ poi/site/src/documentation/content/xdocs/faq.xml Sun May 27 22:01:33 2018
@@ -42,7 +42,7 @@ URL res = classloader.getResource(
String path = res.getPath();
System.out.println("POI Core came from " + path);
-classloader = org.apache.poi.POIXMLDocument.class.getClassLoader();
+classloader = org.apache.poi.ooxml.POIXMLDocument.class.getClassLoader();
res = classloader.getResource("org/apache/poi/POIXMLDocument.class");
path = res.getPath();
System.out.println("POI OOXML came from " + path);
Modified: poi/trunk/build.xml
URL:
http://svn.apache.org/viewvc/poi/trunk/build.xml?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/build.xml (original)
+++ poi/trunk/build.xml Sun May 27 22:01:33 2018
@@ -869,7 +869,7 @@ under the License.
<replace dir="${xmlbean.sources.dir}" includes="**/*.java"
excludes="**/impl/**">
<replacetoken>org.apache.xmlbeans.XmlBeans.getContextTypeLoader()</replacetoken>
- <replacevalue>org.apache.poi.POIXMLTypeLoader</replacevalue>
+
<replacevalue>org.apache.poi.ooxml.POIXMLTypeLoader</replacevalue>
</replace>
<!-- remove deprecated warnings, as we prefer the array methods -
see #56854 -->
@@ -880,9 +880,9 @@ under the License.
<copy todir="${xmlbean.sources.dir}">
<fileset dir="${ooxml.src}">
- <include name="org/apache/poi/POIXMLTypeLoader.java"/>
- <include name="org/apache/poi/util/DocumentHelper.java"/>
- <include name="org/apache/poi/util/SAXHelper.java"/>
+ <include
name="org/apache/poi/ooxml/POIXMLTypeLoader.java"/>
+ <include
name="org/apache/poi/ooxml/util/DocumentHelper.java"/>
+ <include name="org/apache/poi/ooxml/util/SAXHelper.java"/>
<include
name="org/apache/poi/openxml4j/opc/PackageNamespaces.java"/>
</fileset>
<fileset dir="${main.src}">
@@ -907,10 +907,6 @@ under the License.
includeantruntime="false">
<!-- debug="${compile.debug}" -->
<classpath refid="ooxml.classpath"/>
-
- <!-- unfortunately JUnit is required here for OOXMLLite, we
should rather move OOXMLLite
- to test or a separate folder to clean up dependencies -->
- <classpath location="${main.junit.jar}"/>
</javac>
<jar basedir="${xmlbean.classes.dir}" destfile="@{classes-jar}"
excludes="org/apache/**" level="9" />
@@ -1081,10 +1077,6 @@ under the License.
<classpath>
<path refid="ooxml.classpath"/>
<path refid="ooxml.xmlsec.classpath"/>
-
- <!-- unfortunately JUnit is required here for OOXMLLite, we
should rather move OOXMLLite
- to test or a separate folder to clean up dependencies -->
- <pathelement location="${main.junit.jar}"/>
</classpath>
</javac>
<!-- compile the tests -->
@@ -1562,7 +1554,7 @@ under the License.
<zipfileset includes="**/*" src="${ooxml.security.jar}"/>
</jar>
- <java classname="org.apache.poi.util.OOXMLLite" fork="yes"
+ <java classname="org.apache.poi.ooxml.util.OOXMLLite" fork="yes"
failonerror="true">
<classpath>
<pathelement
path="${ooxml.lite-merged.dir}/ooxml-lite-merged.jar"/>
Modified: poi/trunk/sonar/ooxml/pom.xml
URL:
http://svn.apache.org/viewvc/poi/trunk/sonar/ooxml/pom.xml?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/sonar/ooxml/pom.xml (original)
+++ poi/trunk/sonar/ooxml/pom.xml Sun May 27 22:01:33 2018
@@ -155,11 +155,11 @@
<version>1.05</version>
</dependency>
- <!-- non-test dependency for OOXMLLite -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
Modified: poi/trunk/sonar/pom.xml
URL:
http://svn.apache.org/viewvc/poi/trunk/sonar/pom.xml?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/sonar/pom.xml (original)
+++ poi/trunk/sonar/pom.xml Sun May 27 22:01:33 2018
@@ -261,7 +261,7 @@
<target>
<replace
dir="${basedir}/target/generated-sources/xmlbeans" includes="**/*.java"
excludes="**/impl/**">
<replacetoken>org.apache.xmlbeans.XmlBeans.getContextTypeLoader()</replacetoken>
-
<replacevalue>org.apache.poi.POIXMLTypeLoader</replacevalue>
+
<replacevalue>org.apache.poi.ooxml.POIXMLTypeLoader</replacevalue>
</replace>
</target>
</configuration>
Modified:
poi/trunk/src/integrationtest/org/apache/poi/stress/SpreadsheetHandler.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/SpreadsheetHandler.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/src/integrationtest/org/apache/poi/stress/SpreadsheetHandler.java
(original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/SpreadsheetHandler.java
Sun May 27 22:01:33 2018
@@ -48,12 +48,8 @@ public abstract class SpreadsheetHandler
ByteArrayOutputStream out = writeToArray(wb);
// read in the written file
- Workbook read;
- try {
- read = WorkbookFactory.create(new
ByteArrayInputStream(out.toByteArray()));
- } catch (InvalidFormatException e) {
- throw new IllegalStateException(e);
- }
+ Workbook read = WorkbookFactory.create(new
ByteArrayInputStream(out.toByteArray()));
+
assertNotNull(read);
readContent(read);
Modified: poi/trunk/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java
(original)
+++ poi/trunk/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java Sun
May 27 22:01:33 2018
@@ -27,8 +27,6 @@ import java.util.Iterator;
import java.util.List;
import org.apache.poi.EncryptedDocumentException;
-import org.apache.poi.POIOLE2TextExtractor;
-import org.apache.poi.POITextExtractor;
import org.apache.poi.hssf.OldExcelFormatException;
import org.apache.poi.hssf.extractor.EventBasedExcelExtractor;
import org.apache.poi.hssf.extractor.ExcelExtractor;
@@ -108,7 +106,7 @@ public class OLE2ExtractorFactory {
* Should this thread use event based extractors is available?
* Checks the all-threads one first, then thread specific.
*/
- protected static boolean getPreferEventExtractor() {
+ public static boolean getPreferEventExtractor() {
if(allPreferEventExtractors != null) {
return allPreferEventExtractors;
}
@@ -156,7 +154,7 @@ public class OLE2ExtractorFactory {
private static Class<?> getScratchpadClass() {
try {
return OLE2ExtractorFactory.class.getClassLoader().loadClass(
- "org.apache.poi.extractor.OLE2ScratchpadExtractorFactory"
+
"org.apache.poi.extractor.ole2.OLE2ScratchpadExtractorFactory"
);
} catch (ClassNotFoundException e) {
LOGGER.log(POILogger.ERROR, "POI Scratchpad jar missing");
Added: 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=1832359&view=auto
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java
(added)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java
Sun May 27 22:01:33 2018
@@ -0,0 +1,50 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hssf.usermodel;
+
+import java.io.IOException;
+
+import org.apache.poi.poifs.filesystem.DirectoryNode;
+import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
+import org.apache.poi.util.Internal;
+
+/**
+ * Helper class which is instantiated by reflection from
+ * {@link WorkbookFactory#create(java.io.File)} and similar
+ */
+@Internal
+public class HSSFWorkbookFactory extends WorkbookFactory {
+ /**
+ * Creates a HSSFWorkbook from the given NPOIFSFileSystem<p>
+ * Note that in order to properly release resources the
+ * Workbook should be closed after use.
+ */
+ public static HSSFWorkbook createWorkbook(final NPOIFSFileSystem fs)
throws IOException {
+ return new HSSFWorkbook(fs);
+ }
+
+ /**
+ * Creates a HSSFWorkbook from the given DirectoryNode<p>
+ * Note that in order to properly release resources the
+ * Workbook should be closed after use.
+ */
+ public static HSSFWorkbook createWorkbook(final DirectoryNode root) throws
IOException {
+ return new HSSFWorkbook(root, true);
+ }
+}
Propchange:
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
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=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java
(original)
+++ poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java Sun
May 27 22:01:33 2018
@@ -189,7 +189,7 @@ public class SlideShowFactory {
case OOXML:
return createXSLFSlideShow(is);
default:
- throw new IllegalArgumentException("Your InputStream was neither
an OLE2 stream, nor an OOXML stream");
+ throw new IOException("Your InputStream was neither an OLE2
stream, nor an OOXML stream");
}
}
@@ -314,6 +314,8 @@ public class SlideShowFactory {
throw (EncryptedDocumentException)t;
} else if (t instanceof OldFileFormatException) {
throw (OldFileFormatException)t;
+ } else if (t instanceof RuntimeException) {
+ throw (RuntimeException)t;
} else {
throw new IOException(t);
}
Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/ObjectData.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/ObjectData.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/ObjectData.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/ObjectData.java Sun May 27
22:01:33 2018
@@ -62,4 +62,8 @@ public interface ObjectData extends Simp
* @return the preview picture
*/
PictureData getPictureData();
+
+ default String getContentType() {
+ return "binary/octet-stream";
+ }
}
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShowFactory.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShowFactory.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
---
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShowFactory.java
(original)
+++
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideShowFactory.java
Sun May 27 22:01:33 2018
@@ -32,6 +32,33 @@ import org.apache.poi.util.Internal;
public class XSLFSlideShowFactory extends SlideShowFactory {
/**
+ * Creates a XMLSlideShow from the given OOXML Package.
+ * This is a convenience method to go along the create-methods of the
super class.
+ *
+ * <p>Note that in order to properly release resources the
+ * SlideShow should be closed after use.</p>
+ *
+ * @param pkg The {@link OPCPackage} opened for reading data.
+ *
+ * @return The created SlideShow
+ *
+ * @throws IOException if an error occurs while reading the data
+ * @throws InvalidFormatException
+ */
+ public static XMLSlideShow create(OPCPackage pkg) throws IOException {
+ try {
+ return new XMLSlideShow(pkg);
+ } catch (IllegalArgumentException ioe) {
+ // ensure that file handles are closed (use revert() to not
re-write the file)
+ pkg.revert();
+ //pkg.close();
+
+ // rethrow exception
+ throw ioe;
+ }
+ }
+
+ /**
* Creates a XMLSlideShow from the given OOXML Package
*
* <p>Note that in order to properly release resources the
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java
Sun May 27 22:01:33 2018
@@ -23,8 +23,8 @@ import java.io.InputStream;
import javax.xml.namespace.QName;
-import org.apache.poi.POIXMLDocumentPart;
-import org.apache.poi.POIXMLException;
+import org.apache.poi.ooxml.POIXMLDocumentPart;
+import org.apache.poi.ooxml.POIXMLException;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
import org.apache.poi.poifs.filesystem.DirectoryEntry;
@@ -202,4 +202,9 @@ public class XSSFObjectData extends XSSF
cur.dispose();
}
}
+
+ @Override
+ public String getContentType() {
+ return getObjectPart().getContentType();
+ }
}
Added:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java?rev=1832359&view=auto
==============================================================================
---
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java
(added)
+++
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java
Sun May 27 22:01:33 2018
@@ -0,0 +1,134 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.xssf.usermodel;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.poi.EncryptedDocumentException;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.openxml4j.opc.PackageAccess;
+import org.apache.poi.openxml4j.opc.ZipPackage;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
+
+public class XSSFWorkbookFactory extends WorkbookFactory {
+
+ /**
+ * Creates a XSSFWorkbook from the given OOXML Package.
+ * This is a convenience method to go along the create-methods of the
super class.
+ *
+ * <p>Note that in order to properly release resources the
+ * Workbook should be closed after use.</p>
+ *
+ * @param pkg The {@link OPCPackage} opened for reading data.
+ *
+ * @return The created Workbook
+ *
+ * @throws IOException if an error occurs while reading the data
+ * @throws InvalidFormatException
+ */
+ public static XSSFWorkbook create(OPCPackage pkg) throws IOException {
+ return createWorkbook(pkg);
+ }
+
+ /**
+ * Creates a XSSFWorkbook from the given OOXML Package
+ *
+ * <p>Note that in order to properly release resources the
+ * Workbook should be closed after use.</p>
+ *
+ * @param pkg The {@link ZipPackage} opened for reading data.
+ *
+ * @return The created Workbook
+ *
+ * @throws IOException if an error occurs while reading the data
+ * @throws InvalidFormatException
+ */
+ public static XSSFWorkbook createWorkbook(ZipPackage pkg) throws
IOException {
+ return createWorkbook((OPCPackage)pkg);
+ }
+
+ /**
+ * Creates a XSSFWorkbook from the given OOXML Package
+ *
+ * <p>Note that in order to properly release resources the
+ * Workbook should be closed after use.</p>
+ *
+ * @param pkg The {@link OPCPackage} opened for reading data.
+ *
+ * @return The created Workbook
+ *
+ * @throws IOException if an error occurs while reading the data
+ * @throws InvalidFormatException
+ */
+ public static XSSFWorkbook createWorkbook(OPCPackage pkg) throws
IOException {
+ try {
+ return new XSSFWorkbook(pkg);
+ } catch (IllegalArgumentException ioe) {
+ // ensure that file handles are closed (use revert() to not
re-write the file)
+ pkg.revert();
+ //pkg.close();
+
+ // rethrow exception
+ throw ioe;
+ }
+ }
+
+ /**
+ * Creates the XSSFWorkbook from the given File, which must exist and be
readable.
+ * <p>Note that in order to properly release resources the Workbook should
be closed after use.
+ *
+ * @param file The file to read data from.
+ * @param readOnly If the Workbook should be opened in read-only mode to
avoid writing back
+ * changes when the document is closed.
+ *
+ * @return The created Workbook
+ *
+ * @throws IOException if an error occurs while reading the data
+ * @throws EncryptedDocumentException If the wrong password is given for
a protected file
+ */
+ @SuppressWarnings("resource")
+ public static XSSFWorkbook createWorkbook(File file, boolean readOnly)
+ throws IOException, InvalidFormatException {
+ OPCPackage pkg = OPCPackage.open(file, readOnly ? PackageAccess.READ :
PackageAccess.READ_WRITE);
+ return createWorkbook(pkg);
+ }
+
+ /**
+ * Creates a XSSFWorkbook from the given InputStream
+ *
+ * <p>Note that in order to properly release resources the
+ * Workbook should be closed after use.</p>
+ *
+ * @param stream The {@link InputStream} to read data from.
+ *
+ * @return The created Workbook
+ *
+ * @throws IOException if an error occurs while reading the data
+ * @throws InvalidFormatException
+ */
+ @SuppressWarnings("resource")
+ public static XSSFWorkbook createWorkbook(InputStream stream) throws
IOException, InvalidFormatException {
+ OPCPackage pkg = OPCPackage.open(stream);
+ return createWorkbook(pkg);
+ }
+
+
+}
Propchange:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/ss/TestWorkbookFactory.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/ss/TestWorkbookFactory.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/ss/TestWorkbookFactory.java
(original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/ss/TestWorkbookFactory.java
Sun May 27 22:01:33 2018
@@ -39,6 +39,7 @@ import org.apache.poi.xssf.usermodel.XSS
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.opc.PackageAccess;
+import org.apache.poi.xssf.usermodel.XSSFWorkbookFactory;
import org.junit.Test;
public final class TestWorkbookFactory {
@@ -107,7 +108,7 @@ public final class TestWorkbookFactory {
assertCloseDoesNotModifyFile(xls, wb);
// Package -> xssf
- wb = WorkbookFactory.create(
+ wb = XSSFWorkbookFactory.create(
OPCPackage.open(
HSSFTestDataSamples.openSampleFileStream(xlsx))
);
@@ -182,7 +183,7 @@ public final class TestWorkbookFactory {
stream.close();
}
fail();
- } catch(InvalidFormatException e) {
+ } catch(IOException e) {
// Good
}
final byte[] after = HSSFTestDataSamples.getTestDataFileContent(txt);
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
---
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
(original)
+++
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
Sun May 27 22:01:33 2018
@@ -46,10 +46,10 @@ import java.util.TreeMap;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.POIDataSamples;
-import org.apache.poi.POIXMLDocumentPart;
-import org.apache.poi.POIXMLDocumentPart.RelationPart;
-import org.apache.poi.POIXMLException;
-import org.apache.poi.POIXMLProperties;
+import org.apache.poi.ooxml.POIXMLDocumentPart;
+import org.apache.poi.ooxml.POIXMLDocumentPart.RelationPart;
+import org.apache.poi.ooxml.POIXMLException;
+import org.apache.poi.ooxml.POIXMLProperties;
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.hssf.HSSFITestDataProvider;
import org.apache.poi.hssf.HSSFTestDataSamples;
@@ -1459,10 +1459,10 @@ public final class TestXSSFBugs extends
}
/**
- * Password Protected .xlsx files should give a helpful
- * error message when called via WorkbookFactory with no password
+ * Password Protected .xlsx files are now (as of 4.0.0) tested for the
default password
+ * when opened via WorkbookFactory, so there's no
EncryptedDocumentException thrown anymore
*/
- @Test(expected = EncryptedDocumentException.class)
+ @Test
public void bug55692_poifs() throws IOException {
// Via a POIFSFileSystem
try (POIFSFileSystem fsP = new POIFSFileSystem(
@@ -1951,7 +1951,7 @@ public final class TestXSSFBugs extends
// Workbook Factory gives helpful error on package
try {
- WorkbookFactory.create(pkg).close();
+ XSSFWorkbookFactory.create(pkg).close();
fail(".xlsb files not supported");
} catch (XLSBUnsupportedException e) {
// Good, detected and warned
Modified:
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
---
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java
(original)
+++
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java
Sun May 27 22:01:33 2018
@@ -502,18 +502,4 @@ public class AbstractWordUtils
return loadDoc( poifsFileSystem.getRoot() );
}
- static String substringBeforeLast( String str, String separator )
- {
- if ( isEmpty( str ) || isEmpty( separator ) )
- {
- return str;
- }
- int pos = str.lastIndexOf( separator );
- if ( pos == -1 )
- {
- return str;
- }
- return str.substring( 0, pos );
- }
-
}
Modified:
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/DefaultFontReplacer.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/DefaultFontReplacer.java?rev=1832359&r1=1832358&r2=1832359&view=diff
==============================================================================
---
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/DefaultFontReplacer.java
(original)
+++
poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/DefaultFontReplacer.java
Sun May 27 22:01:33 2018
@@ -23,37 +23,33 @@ public class DefaultFontReplacer impleme
{
public Triplet update( Triplet original )
{
- if ( AbstractWordUtils.isNotEmpty( original.fontName ) )
+ if ( isNotEmpty( original.fontName ) )
{
String fontName = original.fontName;
if ( fontName.endsWith( " Regular" ) )
- fontName = AbstractWordUtils.substringBeforeLast( fontName,
- " Regular" );
+ fontName = substringBeforeLast( fontName, " Regular" );
if ( fontName
.endsWith( "
\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439" ) )
- fontName = AbstractWordUtils
- .substringBeforeLast( fontName,
- "
\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439" )
+ fontName = substringBeforeLast( fontName,
+ "
\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439" )
+ " Bold";
if ( fontName
.endsWith( "
\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439
\u041A\u0443\u0440\u0441\u0438\u0432" ) )
- fontName = AbstractWordUtils
- .substringBeforeLast(
- fontName,
- "
\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439
\u041A\u0443\u0440\u0441\u0438\u0432" )
+ fontName = substringBeforeLast(
+ fontName,
+ "
\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439
\u041A\u0443\u0440\u0441\u0438\u0432" )
+ " Bold Italic";
if ( fontName.endsWith( " \u041A\u0443\u0440\u0441\u0438\u0432" ) )
- fontName = AbstractWordUtils.substringBeforeLast( fontName,
- " \u041A\u0443\u0440\u0441\u0438\u0432" ) + " Italic";
+ fontName = substringBeforeLast( fontName, "
\u041A\u0443\u0440\u0441\u0438\u0432" ) + " Italic";
original.fontName = fontName;
}
- if ( AbstractWordUtils.isNotEmpty( original.fontName ) )
+ if ( isNotEmpty( original.fontName ) )
{
if ( "Times Regular".equals( original.fontName )
|| "Times-Regular".equals( original.fontName )
@@ -88,4 +84,30 @@ public class DefaultFontReplacer impleme
return original;
}
+
+ private static boolean isEmpty( String str )
+ {
+ return str == null || str.length() == 0;
+ }
+
+ private static boolean isNotEmpty( String str )
+ {
+ return !isEmpty( str );
+ }
+
+
+ private static String substringBeforeLast( String str, String separator )
+ {
+ if ( isEmpty( str ) || isEmpty( separator ) )
+ {
+ return str;
+ }
+ int pos = str.lastIndexOf( separator );
+ if ( pos == -1 )
+ {
+ return str;
+ }
+ return str.substring( 0, pos );
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]