import java.io.InputStream;
import java.util.LinkedHashMap;
-import javax.xml.bind.*;
-import javax.xml.stream.*;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.EventFilter;
+import javax.xml.stream.XMLEventReader;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent;
public class PresetGeometries extends LinkedHashMap<String, CustomGeometry> {
private final static POILogger LOG = POILogFactory.getLogger(PresetGeometries.class);
protected final static String BINDING_PACKAGE = "org.apache.poi.sl.draw.binding";
- private static final String JAXPFACTORYID = "javax.xml.stream.XMLInputFactory";
protected static PresetGeometries _inst;
}
};
- fixXmlSystemProperties();
-
XMLInputFactory staxFactory = XMLInputFactory.newFactory();
XMLEventReader staxReader = staxFactory.createXMLEventReader(is);
XMLEventReader staxFiltRd = staxFactory.createFilteredReader(staxReader, startElementFilter);
return _inst;
}
-
- public static void fixXmlSystemProperties() {
- // handling for illegal system properties - mainly because of failing gump build
- String xmlFactClass = System.getProperty(JAXPFACTORYID);
- if (xmlFactClass != null) {
- try {
- Class.forName(xmlFactClass);
- } catch (Exception e) {
- LOG.log(POILogger.ERROR, "Invalid xml input factory config detected. ("+JAXPFACTORYID+"="+xmlFactClass+")");
- try {
- System.clearProperty(JAXPFACTORYID);
- } catch (Exception e2) {
- LOG.log(POILogger.ERROR, "Failed to remove invalid xml input factory", e2);
- }
- }
- }
- }
}
import java.util.HashMap;\r
import java.util.Map;\r
\r
-import javax.xml.stream.XMLInputFactory;\r
-\r
import org.apache.poi.sl.draw.Drawable;\r
import org.apache.poi.util.JvmBugs;\r
import org.apache.poi.xslf.XSLFTestDataSamples;\r
@BeforeClass\r
public static void activateJaxpDebug() {\r
jaxpDebugEnable = setDebugFld(true);\r
- fixDefaultInputFactory();\r
+ setXmlInputFactory();\r
}\r
\r
@AfterClass\r
}\r
}\r
\r
- private static void fixDefaultInputFactory() {\r
- String originalValue = "com.sun.xml.internal.stream.XMLInputFactoryImpl";\r
+ private static void setXmlInputFactory() {\r
+ String propName = "javax.xml.stream.XMLInputFactory";\r
+ String propVal = "com.sun.xml.internal.stream.XMLInputFactoryImpl";\r
try {\r
- Field fld = XMLInputFactory.class.getDeclaredField("DEFAULIMPL");\r
- fld.setAccessible(true);\r
- String val = (String)fld.get(null);\r
- if (!originalValue.equals(val)) {\r
- System.out.println("DefaultXMLInputFactory illegal changed to: "+val);\r
- fld.set(null, originalValue);\r
- }\r
- } catch (Exception e) {\r
+ Class.forName(propVal);\r
+ System.setProperty(propName, propVal);\r
+ } catch (Exception e){\r
// ignore\r
}\r
}\r