Hi Joe,
This looks reasonable.
Out of curiosity - could it be that it was fSAXParser that was null,
and not fSecurityPropertyMgr?
JAXPSAXParser has a no arg public constructor that could have lead to
that...
I have only one remark:
It looks as if fSecurityPropertyMgr could be declared final in both
classes - and I think it
would be better if it were: it would make it clear that it's never
replaced in fSAXParser
and that therefore your new code is strictly equivalent to the old in
that respect.
best regards,
-- daniel
On 7/24/13 4:01 AM, huizhe wang wrote:
Hi Lance, Chris,
Looking at the affected class [1], and the error stack trace [2] , it
appeared that in SAXParserImpl$JAXPSAXParser , line 545,
fSAXParser.fSecurityPropertyMgr is null when setProperty is called.
fSecurityPropertyMgr was instantiated in SAXParserImpl's constructor
after JAXPSAXParser was. I can see a chance where the NetBeans got a
copy of JAXPSAXParser instance with fSecurityPropertyMgr not
initialized. The fix is to remove the reference of
fSecurityPropertyMgr in JAXPSAXParser, and pass it in when
JAXPSAXParser is created.
Here is the webrev:
http://cr.openjdk.java.net/~joehw/7u40/8021148/webrev/
[1]
http://cr.openjdk.java.net/~joehw/7u40/8021148/webrev/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java.html
[2]
Caused by: java.lang.NullPointerException
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.access$300(SAXParserImpl.java:69)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.setProperty(SAXParserImpl.java:545)
at
com.sun.org.apache.xml.internal.utils.XMLReaderManager.getXMLReader(XMLReaderManager.java:161)
at
com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault.getXMLReader(DTMManagerDefault.java:613)
at
com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:401)
at
com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:252)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:559)
... 43 more
---------
javax.xml.transform.TransformerException: java.lang.NullPointerException
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:581)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:742)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:353)
at
org.netbeans.spi.project.support.ant.GeneratedFilesHelper$1$1.run(GeneratedFilesHelper.java:332)
Thanks,
Joe