https://bz.apache.org/bugzilla/show_bug.cgi?id=62564
Bug ID: 62564 Summary: A classloader issue looking up org.apache.poi.poifs.crypt.agile.AgileEncryptionInfoBu ilder Product: POI Version: 3.17-FINAL Hardware: Other OS: Linux Status: NEW Severity: normal Priority: P2 Component: POI Overall Assignee: dev@poi.apache.org Reporter: kwri...@apache.org Target Milestone: --- Please see the following stack trace: org.apache.tika.exception.TikaException: TIKA-198: Illegal IOException from org.apache.tika.parser.microsoft.OfficeParser@62980adb at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:286) ~[tika-core-1.17.jar:1.17] at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280) ~[tika-core-1.17.jar:1.17] at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:143) ~[tika-core-1.17.jar:1.17] at org.apache.manifoldcf.agents.transformation.tika.TikaParser.parse(TikaParser.java:74) ~[mcf-tika-connector.jar:?] at org.apache.manifoldcf.agents.transformation.tika.TikaExtractor.addOrReplaceDocumentWithException(TikaExtractor.java:235) [mcf-tika-connector.jar:?] Caused by: java.io.IOException: java.lang.ClassNotFoundException: org.apache.poi.poifs.crypt.agile.AgileEncryptionInfoBuilder at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:150) ~[?:?] at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:102) ~[?:?] at org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:203) ~[?:?] at org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:132) ~[?:?] at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280) ~[?:?] ... 12 more Caused by: java.lang.ClassNotFoundException: org.apache.poi.poifs.crypt.agile.AgileEncryptionInfoBuilder at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:1.8.0_171] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_171] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[?:1.8.0_171] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_171] at org.apache.poi.poifs.crypt.EncryptionInfo.getBuilder(EncryptionInfo.java:222) ~[?:?] at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:148) ~[?:?] at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:102) ~[?:?] at org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:203) ~[?:?] at org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:132) ~[?:?] at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280) ~[?:?] ... 12 more This occurs in the context of Apache ManifoldCF, which is using Tika to extract document content from a variety of different document types, which in turn is using Apache POI. ManifoldCF uses a fairly common tiered classloader setup, and has all the POI jars at the same level along with many others. The basic expectation is that the classloader that was used to load a class should be used to load any class it depends on, whether directly or via reflection. But unfortunately it appears that there's a place in POI where this isn't honored, and instead the wrong class loader is used. A similar ticket was opened about a year ago for the POI project, related to how xmlbeans did its reflection class loading, and that was successfully resolved. This seems to be another similar situation. The place where this occurred was in a production system whose documents I do not have access to. It would be good to know what type of document it was as well. -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org For additional commands, e-mail: dev-h...@poi.apache.org