From 90e8b0f5b0e863c97d85a5d98cc4b15954a04c9e Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Mon, 11 Jul 2016 22:57:42 +0000 Subject: [PATCH] Last bit of reflection - get back to the full OOXML-enabled factory if we can git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1752228 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/extractor/OLE2ExtractorFactory.java | 11 +++++++++-- 1 file 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 52a0bf12f..d1577898f 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));