Check if Woodstox is used not only by class instance but also by property to fix max-element-size issue for JBoss

This commit is contained in:
johannes.duenser 2017-02-27 14:14:25 +01:00
parent 21ea5a070f
commit 837264ea48
1 changed files with 14 additions and 1 deletions

View File

@ -1615,7 +1615,20 @@ public class XmlUtil {
*/
try {
Class.forName("com.ctc.wstx.stax.WstxInputFactory");
if (inputFactory instanceof com.ctc.wstx.stax.WstxInputFactory) {
boolean isWoodstox = inputFactory instanceof com.ctc.wstx.stax.WstxInputFactory;
if ( !isWoodstox )
{
// Check if implementation is woodstox by property since instanceof check does not work if running in JBoss
try
{
isWoodstox = inputFactory.getProperty( "org.codehaus.stax2.implVersion" ) != null;
}
catch ( IllegalArgumentException e )
{
// ignore
}
}
if (isWoodstox) {
// inputFactory.setProperty(WstxInputFactory.IS_REPLACING_ENTITY_REFERENCES, false);
inputFactory.setProperty(WstxInputProperties.P_UNDECLARED_ENTITY_RESOLVER, XML_RESOLVER);
try {