protected XMLStreamReader createDepthReaderIfNeeded(XMLStreamReader reader, InputStream is) { DocumentDepthProperties props = getDepthProperties(); if (props != null && props.isEffective()) { reader = TransformUtils.createNewReaderIfNeeded(reader, is); reader = new DepthRestrictingStreamReader(reader, props); } else if (reader != null) { reader = configureReaderRestrictions(reader); } return reader; }
protected XMLStreamReader createDepthReaderIfNeeded(XMLStreamReader reader, InputStream is) { DocumentDepthProperties props = getDepthProperties(); if (props != null && props.isEffective()) { reader = TransformUtils.createNewReaderIfNeeded(reader, is); reader = new DepthRestrictingStreamReader(reader, props); } else if (reader != null) { reader = configureReaderRestrictions(reader); } return reader; }
protected DocumentDepthProperties getDepthProperties() { DocumentDepthProperties depthProperties = super.getDepthProperties(); if (depthProperties != null) { return depthProperties; } if (getContext() != null) { String totalElementCountStr = (String)getContext().getContextualProperty( DocumentDepthProperties.TOTAL_ELEMENT_COUNT); String innerElementCountStr = (String)getContext().getContextualProperty( DocumentDepthProperties.INNER_ELEMENT_COUNT); String elementLevelStr = (String)getContext().getContextualProperty( DocumentDepthProperties.INNER_ELEMENT_LEVEL); if (totalElementCountStr != null || innerElementCountStr != null || elementLevelStr != null) { try { int totalElementCount = totalElementCountStr != null ? Integer.parseInt(totalElementCountStr) : -1; int elementLevel = elementLevelStr != null ? Integer.parseInt(elementLevelStr) : -1; int innerElementCount = innerElementCountStr != null ? Integer.parseInt(innerElementCountStr) : -1; return new DocumentDepthProperties(totalElementCount, elementLevel, innerElementCount); } catch (Exception ex) { throw ExceptionUtils.toInternalServerErrorException(ex, null); } } } return null; }
protected DocumentDepthProperties getDepthProperties() { DocumentDepthProperties depthProperties = super.getDepthProperties(); if (depthProperties != null) { return depthProperties; } if (getContext() != null) { String totalElementCountStr = (String)getContext().getContextualProperty( DocumentDepthProperties.TOTAL_ELEMENT_COUNT); String innerElementCountStr = (String)getContext().getContextualProperty( DocumentDepthProperties.INNER_ELEMENT_COUNT); String elementLevelStr = (String)getContext().getContextualProperty( DocumentDepthProperties.INNER_ELEMENT_LEVEL); if (totalElementCountStr != null || innerElementCountStr != null || elementLevelStr != null) { try { int totalElementCount = totalElementCountStr != null ? Integer.parseInt(totalElementCountStr) : -1; int elementLevel = elementLevelStr != null ? Integer.parseInt(elementLevelStr) : -1; int innerElementCount = innerElementCountStr != null ? Integer.parseInt(innerElementCountStr) : -1; return new DocumentDepthProperties(totalElementCount, elementLevel, innerElementCount); } catch (Exception ex) { throw ExceptionUtils.toInternalServerErrorException(ex, null); } } } return null; }