# HG changeset patch # User joehw # Date 1452920175 28800 # Node ID 1a6e1fdb7c5effaf947c8ed53d86f9906b461035 # Parent 2dc4c11fe48831854916d53c3913bdb7d49023ea 8147051: StaxEntityResolverWrapper should create StaxXMLInputSource with a resolver indicator Reviewed-by: lancea diff -r 2dc4c11fe488 -r 1a6e1fdb7c5e jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java Wed Jul 05 21:13:10 2017 +0200 +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java Fri Jan 15 20:56:15 2016 -0800 @@ -1155,7 +1155,7 @@ StaxXMLInputSource staxInputSource = fEntityManager.resolveEntityAsPerStax(resourceIdentifier); // Check access permission. If the source is resolved by a resolver, the check is skipped. - if (!staxInputSource.hasResolver()) { + if (!staxInputSource.isCreatedByResolver()) { String accessError = checkAccess(fDoctypeSystemId, fAccessExternalDTD); if (accessError != null) { reportFatalError("AccessExternalDTD", new Object[]{ SecuritySupport.sanitizePath(fDoctypeSystemId), accessError }); diff -r 2dc4c11fe488 -r 1a6e1fdb7c5e jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Wed Jul 05 21:13:10 2017 +0200 +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Fri Jan 15 20:56:15 2016 -0800 @@ -1008,12 +1008,14 @@ } // do default resolution - //this works for both stax & Xerces, if staxInputSource is null, it means parser need to revert to default resolution + //this works for both stax & Xerces, if staxInputSource is null, + //it means parser need to revert to default resolution if (staxInputSource == null) { // REVISIT: when systemId is null, I think we should return null. // is this the right solution? -SG //if (systemId != null) - staxInputSource = new StaxXMLInputSource(new XMLInputSource(publicId, literalSystemId, baseSystemId)); + staxInputSource = new StaxXMLInputSource( + new XMLInputSource(publicId, literalSystemId, baseSystemId), false); }else if(staxInputSource.hasXMLStreamOrXMLEventReader()){ //Waiting for the clarification from EG. - nb } diff -r 2dc4c11fe488 -r 1a6e1fdb7c5e jaxp/src/java.xml/share/classes/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java --- a/jaxp/src/java.xml/share/classes/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java Wed Jul 05 21:13:10 2017 +0200 +++ b/jaxp/src/java.xml/share/classes/com/sun/xml/internal/stream/StaxEntityResolverWrapper.java Fri Jan 15 20:56:15 2016 -0800 @@ -71,12 +71,12 @@ if(object == null) return null ; if(object instanceof java.io.InputStream){ - return new StaxXMLInputSource(new XMLInputSource(null, null, null, (InputStream)object, null)); + return new StaxXMLInputSource(new XMLInputSource(null, null, null, (InputStream)object, null), true); } else if(object instanceof XMLStreamReader){ - return new StaxXMLInputSource((XMLStreamReader)object) ; + return new StaxXMLInputSource((XMLStreamReader)object, true) ; }else if(object instanceof XMLEventReader){ - return new StaxXMLInputSource((XMLEventReader)object) ; + return new StaxXMLInputSource((XMLEventReader)object, true) ; } return null ; diff -r 2dc4c11fe488 -r 1a6e1fdb7c5e jaxp/src/java.xml/share/classes/com/sun/xml/internal/stream/StaxXMLInputSource.java --- a/jaxp/src/java.xml/share/classes/com/sun/xml/internal/stream/StaxXMLInputSource.java Wed Jul 05 21:13:10 2017 +0200 +++ b/jaxp/src/java.xml/share/classes/com/sun/xml/internal/stream/StaxXMLInputSource.java Fri Jan 15 20:56:15 2016 -0800 @@ -43,27 +43,22 @@ XMLEventReader fEventReader ; XMLInputSource fInputSource ; - //indicate if the source is resolved by a resolver - boolean fHasResolver = false; + //indicates if the source is created by a resolver + boolean fIsCreatedByResolver = false; /** Creates a new instance of StaxXMLInputSource */ - public StaxXMLInputSource(XMLStreamReader streamReader) { + public StaxXMLInputSource(XMLStreamReader streamReader, boolean byResolver) { fStreamReader = streamReader ; } /** Creates a new instance of StaxXMLInputSource */ - public StaxXMLInputSource(XMLEventReader eventReader) { + public StaxXMLInputSource(XMLEventReader eventReader, boolean byResolver) { fEventReader = eventReader ; } - public StaxXMLInputSource(XMLInputSource inputSource){ + public StaxXMLInputSource(XMLInputSource inputSource, boolean byResolver){ fInputSource = inputSource ; - - } - - public StaxXMLInputSource(XMLInputSource inputSource, boolean hasResolver){ - fInputSource = inputSource ; - fHasResolver = hasResolver; + fIsCreatedByResolver = byResolver; } public XMLStreamReader getXMLStreamReader(){ @@ -82,7 +77,7 @@ return (fStreamReader == null) && (fEventReader == null) ? false : true ; } - public boolean hasResolver() { - return fHasResolver; + public boolean isCreatedByResolver() { + return fIsCreatedByResolver; } }