See <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/236/display/redirect?page=changes>
Changes: [PJ Fanning] [github-735] POIFS: optimise occupied size calc. Thanks to Emmanuel Bourg. This closes #735 [Dominik Stadler] Expect an XML parser error in one test when running with IBM JDK [Dominik Stadler] Jenkins DSL: Remove POI builds for non-LTS JDKs 18, 19 and 20 [Dominik Stadler] Groovy script example: Use latest POI and fix to run again Fix path to test-file Fix changed constants Add settings.gradle Adjust Rat exclusions [Dominik Stadler] Jenkins DSL: adoptopenjdk is not available any more [PJ Fanning] gradle 8.11.1 [PJ Fanning] add back 731 changes but increase gradle heap [PJ Fanning] test with xmlbeans 5.3.0 rc1 [PJ Fanning] revert 731 because of suspicious mem issues in ci-builds [PJ Fanning] add mirr test [PJ Fanning] add mirr test [PJ Fanning] [github-733] Fix rate order in Mirr function. Thanks to Aleksandrs Jansons. This closes #733 [PJ Fanning] [github-731] Fix the mini-stream size in the root property. This closes #731 [PJ Fanning] PoiLogManager ------------------------------------------ [...truncated 517.58 KiB...] [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java>:1588: warning: no @throws for java.io.IOException [javadoc] protected abstract void closeImpl() throws IOException; [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java>:1602: warning: no @throws for java.io.IOException [javadoc] protected abstract void saveImpl(OutputStream outputStream) [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java>:1610: warning: no @throws for org.apache.poi.openxml4j.exceptions.InvalidFormatException [javadoc] protected abstract PackagePartCollection getPartsImpl() [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java>:1717: warning: no @return [javadoc] public abstract boolean isClosed(); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/RelationshipSource.java>:114: warning: no @throws for org.apache.poi.openxml4j.exceptions.OpenXML4JException [javadoc] PackageRelationshipCollection getRelationships() throws OpenXML4JException; [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackagePart.java>:520: warning: no @throws for java.io.IOException [javadoc] public OutputStream getOutputStream() throws IOException { [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:54: warning: no @param for category [javadoc] void setCategoryProperty(String category); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:60: warning: no @param for category [javadoc] void setCategoryProperty(Optional<String> category); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:71: warning: no @param for contentStatus [javadoc] void setContentStatusProperty(String contentStatus); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:77: warning: no @param for contentStatus [javadoc] void setContentStatusProperty(Optional<String> contentStatus); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:90: warning: no @param for contentType [javadoc] void setContentTypeProperty(String contentType); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:97: warning: no @param for contentType [javadoc] void setContentTypeProperty(Optional<String> contentType); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:110: warning: no @param for created [javadoc] void setCreatedProperty(String created) throws InvalidFormatException; [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:115: warning: no @param for created [javadoc] void setCreatedProperty(Optional<Date> created); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:128: warning: no @param for creator [javadoc] void setCreatorProperty(String creator); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:135: warning: no @param for creator [javadoc] void setCreatorProperty(Optional<String> creator); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:140: warning: no @return [javadoc] Optional<String> getDescriptionProperty(); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:145: warning: no @param for description [javadoc] void setDescriptionProperty(String description); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:151: warning: no @param for description [javadoc] void setDescriptionProperty(Optional<String> description); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:162: warning: no @param for identifier [javadoc] void setIdentifierProperty(String identifier); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:168: warning: no @param for identifier [javadoc] void setIdentifierProperty(Optional<String> identifier); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:183: warning: no @param for keywords [javadoc] void setKeywordsProperty(String keywords); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:191: warning: no @param for keywords [javadoc] void setKeywordsProperty(Optional<String> keywords); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:202: warning: no @param for language [javadoc] void setLanguageProperty(String language); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:208: warning: no @param for language [javadoc] void setLanguageProperty(Optional<String> language); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:213: warning: no @return [javadoc] Optional<String> getLastModifiedByProperty(); [javadoc] ^ [javadoc] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageProperties.java>:218: warning: no @param for lastModifiedBy [javadoc] void setLastModifiedByProperty(String lastModifiedBy); [javadoc] ^ [javadoc] 100 warnings [jar] Building jar: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/236/artifact/build/dist/maven/apache-poi-ooxml/apache-poi-ooxml-5.4.0-SNAPSHOT-javadoc.jar> assemble: [zip] Building zip: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/236/artifact/build/dist/apache-poi-src-5.4.0-SNAPSHOT-20241201.zip> [tar] Building tar: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/dist/apache-poi-src-5.4.0-SNAPSHOT-20241201.tar.gz> [echo] Distribution located in <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/dist> [echo] Use "ant dist-checksum" to create sha256/sha512 checksums and GPG signatures findbugs: [mkdir] Created dir: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/config> [get] Getting: https://repo1.maven.org/maven2/com/github/spotbugs/spotbugs/4.7.3/spotbugs-4.7.3.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/spotbugs.jar> [get] Getting: https://repo1.maven.org/maven2/com/github/spotbugs/spotbugs-ant/4.7.3/spotbugs-ant-4.7.3.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/spotbugs-ant.jar> [get] Getting: https://repo1.maven.org/maven2/com/github/spotbugs/spotbugs-annotations/4.7.3/spotbugs-annotations-4.7.3.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/spotbugs-annotations.jar> [get] Getting: https://repo1.maven.org/maven2/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/dom4j-2.1.3.jar> [get] Getting: https://repo1.maven.org/maven2/jaxen/jaxen/1.2.0/jaxen-1.2.0.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/jaxen-1.2.0.jar> [get] Getting: https://repo1.maven.org/maven2/org/apache/bcel/bcel/6.5.0/bcel-6.5.0.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/bcel-6.5.0.jar> [get] Getting: https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.0/slf4j-api-2.0.0.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/slf4j-api-2.0.0.jar> [get] Getting: https://repo1.maven.org/maven2/org/apache/commons/commons-text/1.11.0/commons-text-1.11.0.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/commons-text-1.11.0.jar> [get] Getting: https://repo1.maven.org/maven2/commons-codec/commons-codec/1.17.1/commons-codec-1.17.1.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/commons-codec-1.17.1.jar> [get] Getting: https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/commons-logging-1.2.jar> [get] Getting: https://repo1.maven.org/maven2/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/jcip-annotations-1.0.jar> [get] Getting: https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/jsr305-3.0.2.jar> [get] Getting: https://repo1.maven.org/maven2/org/ow2/asm/asm/9.5/asm-9.5.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/asm-9.5.jar> [get] Getting: https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/asm-analysis-9.5.jar> [get] Getting: https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/asm-commons-9.5.jar> [get] Getting: https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/asm-tree-9.5.jar> [get] Getting: https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/asm-util-9.5.jar> [get] Getting: https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.24.2/log4j-api-2.24.2.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/log4j-api-2.24.2.jar> [get] Getting: https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.24.2/log4j-core-2.24.2.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/log4j-core-2.24.2.jar> [get] Getting: https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j2-impl/2.24.2/log4j-slf4j2-impl-2.24.2.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/log4j-slf4j2-impl-2.24.2.jar> [get] Getting: https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/12.5/Saxon-HE-12.5.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/Saxon-HE-12.5.jar> [get] Getting: https://repo1.maven.org/maven2/org/xmlresolver/xmlresolver/4.2.0/xmlresolver-4.2.0.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/xmlresolver-4.2.0.jar> [get] Getting: https://repo1.maven.org/maven2/com/ibm/icu/icu4j/68.2/icu4j-68.2.jar [get] To: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/findbugs/lib/icu4j-68.2.jar> [spotbugs] Executing SpotBugs FindBugsTask from ant task [spotbugs] Running SpotBugs... [spotbugs] SLF4J: No SLF4J providers were found. [spotbugs] SLF4J: Defaulting to no-operation (NOP) logger implementation [spotbugs] SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details. [spotbugs] Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/tree/ClassNode [spotbugs] at java.lang.ClassLoader.defineClass1(Native Method) [spotbugs] at java.lang.ClassLoader.defineClass(ClassLoader.java:756) [spotbugs] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [spotbugs] at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) [spotbugs] at java.net.URLClassLoader.access$100(URLClassLoader.java:74) [spotbugs] at java.net.URLClassLoader$1.run(URLClassLoader.java:369) [spotbugs] at java.net.URLClassLoader$1.run(URLClassLoader.java:363) [spotbugs] at java.security.AccessController.doPrivileged(Native Method) [spotbugs] at java.net.URLClassLoader.findClass(URLClassLoader.java:362) [spotbugs] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) [spotbugs] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) [spotbugs] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) [spotbugs] at java.lang.ClassLoader.defineClass1(Native Method) [spotbugs] at java.lang.ClassLoader.defineClass(ClassLoader.java:756) [spotbugs] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [spotbugs] at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) [spotbugs] at java.net.URLClassLoader.access$100(URLClassLoader.java:74) [spotbugs] at java.net.URLClassLoader$1.run(URLClassLoader.java:369) [spotbugs] at java.net.URLClassLoader$1.run(URLClassLoader.java:363) [spotbugs] at java.security.AccessController.doPrivileged(Native Method) [spotbugs] at java.net.URLClassLoader.findClass(URLClassLoader.java:362) [spotbugs] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) [spotbugs] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) [spotbugs] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) [spotbugs] at edu.umd.cs.findbugs.PluginLoader.loadPluginComponents(PluginLoader.java:862) [spotbugs] at edu.umd.cs.findbugs.PluginLoader.<init>(PluginLoader.java:444) [spotbugs] at edu.umd.cs.findbugs.PluginLoader.loadCorePlugin(PluginLoader.java:1490) [spotbugs] at edu.umd.cs.findbugs.PluginLoader.loadInitialPlugins(PluginLoader.java:1444) [spotbugs] at edu.umd.cs.findbugs.PluginLoader.<clinit>(PluginLoader.java:153) [spotbugs] at edu.umd.cs.findbugs.DetectorFactoryCollection.getCoreResource(DetectorFactoryCollection.java:353) [spotbugs] at edu.umd.cs.findbugs.SystemProperties.loadPropertiesFromConfigFile(SystemProperties.java:84) [spotbugs] at edu.umd.cs.findbugs.SystemProperties.<clinit>(SystemProperties.java:67) [spotbugs] at edu.umd.cs.findbugs.FindBugs2.<clinit>(FindBugs2.java:98) [spotbugs] Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.tree.ClassNode [spotbugs] at java.net.URLClassLoader.findClass(URLClassLoader.java:387) [spotbugs] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) [spotbugs] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) [spotbugs] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) [spotbugs] ... 33 more [spotbugs] Java Result: 1 [spotbugs] Output saved to build/findbugs.xml [xslt] Transforming into <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build> release-notes: [copy] Copying 1 file to <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/dist> rat-check: [mkdir] Created dir: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build/rat> [echo] [echo] ***************************************************** [echo] Summary [echo] ------- [echo] Generated at: 2024-12-01T21:25:37Z [echo] [echo] Notes: 0 [echo] Binaries: 102 [echo] Archives: 0 [echo] Standards: 3869 [echo] [echo] Apache Licensed: 3868 [echo] Generated Documents: 0 [echo] [echo] JavaDocs are generated, thus a license header is optional. [echo] Generated files do not require license headers. [echo] [echo] 1 Unknown Licenses [echo] [echo] ***************************************************** [echo] [echo] Files with unapproved licenses: [echo] [echo] <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-examples/src/main/groovy/settings.gradle> [echo] [echo] ***************************************************** [echo] [echo] ***************************************************** [echo] Files with Apache License headers will be marked AL [echo] Binary files (which do not require any license headers) will be marked B [echo] Compressed archives will be marked A [echo] Notices, licenses etc. will be marked N [echo] !????? <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-examples/src/main/groovy/settings.gradle> [echo] [echo] ***************************************************** [echo] [echo] Printing headers for text files without a valid license header... [echo] [echo] ===================================================== [echo] == File: <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/poi-examples/src/main/groovy/settings.gradle> [echo] ===================================================== [echo] // empty file required to have a standalone build BUILD FAILED <https://ci-builds.apache.org/job/POI/job/POI-DSL-old-Xerces/ws/build.xml>:2481: condition satisfied Total time: 31 minutes 43 seconds Build step 'Invoke Ant' marked build as failure [SpotBugs] Skipping execution of recorder since overall result is 'FAILURE' ERROR: Not all environment variables could be successfully injected. Check for similarly-named environment variables. Archiving artifacts ERROR: Not all environment variables could be successfully injected. Check for similarly-named environment variables. Recording test results ERROR: Not all environment variables could be successfully injected. Check for similarly-named environment variables. [Checks API] No suitable checks publisher found. ERROR: Not all environment variables could be successfully injected. Check for similarly-named environment variables. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org For additional commands, e-mail: dev-h...@poi.apache.org