diff options
-rw-r--r-- | src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java b/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java index 52a0bf12f8..d1577898f1 100644 --- a/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java +++ b/src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java @@ -126,8 +126,15 @@ public class OLE2ExtractorFactory { public static POITextExtractor createExtractor(InputStream input) throws IOException { Class<?> cls = getOOXMLClass(); if (cls != null) { - // TODO Reflection - throw new IllegalArgumentException("TODO Reflection"); + // Use Reflection to get us the full OOXML-enabled version + try { + Method m = cls.getDeclaredMethod("createExtractor", InputStream.class); + return (POITextExtractor)m.invoke(null, input); + } catch (IllegalArgumentException iae) { + throw iae; + } catch (Exception e) { + throw new IllegalArgumentException("Error creating Extractor for InputStream", e); + } } else { // Best hope it's OLE2.... return createExtractor(new NPOIFSFileSystem(input)); |