[
https://issues.apache.org/jira/browse/XERCESJ-1548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guangtai Liang updated XERCESJ-1548:
------------------------------------
Description:
The fix revision 318567 was aimed to remove an NPE bug on the "locator" in the
method "startDTD" of the file
"/xerces/java/trunk/src/org/apache/xerces/parsers/AbstractDOMParser.java" , but
it is incomplete.
Since the "locator" could be null during the run-time execution, it should also
be null-checked before being dereferenced at Line 1683 and Line 1684.
The buggy code the proposed missing fixes should be made in is as bellowing:
public void startDTD(XMLLocator locator, Augmentations augs) throws
XNIException {
if (DEBUG_EVENTS) {
System.out.println("==>startDTD");
if (DEBUG_BASEURI) {
System.out.println(" expandedSystemId:
"+locator.getExpandedSystemId()); [Line 1683]
System.out.println(" baseURI:"+ locator.getBaseSystemId());
[Line 1684]
}
}
fInDTD = true;
if (locator != null) {
fBaseURIStack.push(locator.getBaseSystemId());
}
if (fDeferNodeExpansion || fDocumentImpl != null) {
fInternalSubset = new StringBuffer(1024);
}
} // startDTD(XMLLocator)
was:
The fix revision 318567 was aimed to remove an NPE bug on "locator" in the
method "startDTD" of the file
"/xerces/java/trunk/src/org/apache/xerces/parsers/AbstractDOMParser.java" , but
it is incomplete.
Since the "locator" could be null during the run-time execution, it should also
be null-checked before being dereferenced at Line 1683 and Line 1684.
The buggy code the proposed missing fixes should also be made in is copied as
bellowing:
public void startDTD(XMLLocator locator, Augmentations augs) throws
XNIException {
if (DEBUG_EVENTS) {
System.out.println("==>startDTD");
if (DEBUG_BASEURI) {
System.out.println(" expandedSystemId:
"+locator.getExpandedSystemId()); [Line 1683]
System.out.println(" baseURI:"+ locator.getBaseSystemId());
[Line 1684]
}
}
fInDTD = true;
if (locator != null) {
fBaseURIStack.push(locator.getBaseSystemId());
}
if (fDeferNodeExpansion || fDocumentImpl != null) {
fInternalSubset = new StringBuffer(1024);
}
} // startDTD(XMLLocator)
Summary: An incomplete fix for the NPE bugs in AbstractDOMParser.java
(was: Missing Fixes for the NPE bugs in AbstractDOMParser.java)
> An incomplete fix for the NPE bugs in AbstractDOMParser.java
> ------------------------------------------------------------
>
> Key: XERCESJ-1548
> URL: https://issues.apache.org/jira/browse/XERCESJ-1548
> Project: Xerces2-J
> Issue Type: Bug
> Components: Other
> Reporter: Guangtai Liang
> Priority: Critical
> Labels: incomplete_fix, missing_fixes
> Original Estimate: 10m
> Remaining Estimate: 10m
>
> The fix revision 318567 was aimed to remove an NPE bug on the "locator" in
> the method "startDTD" of the file
> "/xerces/java/trunk/src/org/apache/xerces/parsers/AbstractDOMParser.java" ,
> but it is incomplete.
> Since the "locator" could be null during the run-time execution, it should
> also be null-checked before being dereferenced at Line 1683 and Line 1684.
> The buggy code the proposed missing fixes should be made in is as bellowing:
> public void startDTD(XMLLocator locator, Augmentations augs) throws
> XNIException {
> if (DEBUG_EVENTS) {
> System.out.println("==>startDTD");
> if (DEBUG_BASEURI) {
> System.out.println(" expandedSystemId:
> "+locator.getExpandedSystemId()); [Line 1683]
> System.out.println(" baseURI:"+ locator.getBaseSystemId());
> [Line 1684]
> }
> }
> fInDTD = true;
> if (locator != null) {
> fBaseURIStack.push(locator.getBaseSystemId());
> }
> if (fDeferNodeExpansion || fDocumentImpl != null) {
> fInternalSubset = new StringBuffer(1024);
> }
> } // startDTD(XMLLocator)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]