Friendly Jira Robot created ERT-319:
---------------------------------------
Summary: NewXMLGenerator NPE [EBZ#459013]
Key: ERT-319
URL:
https://issues.jboss.org/browse/ERT-319
Project: Eclipse Release Train
Issue Type: Task
Components: WTP Source Editing
Reporter: Friendly Jira Robot
Fix For: Neon (4.6) M7
We use some WTP internal classes in our unit tests. We are experiencing an NPE in wst.xml
code:
The offending method reads as follows, with my own comments inline:
public void createNamespaceInfoList() {
List result = new Vector();
if (cmDocument != null) {
// result is set to null here
result = (List)
cmDocument.getProperty("http://org.eclipse.wst/cm/properties/completeNamespaceInfo");
//$NON-NLS-1$
if (result != null) {
// cut out for brevity
}
NamespaceInfoContentBuilder builder = new NamespaceInfoContentBuilder();
builder.setBuildPolicy(ContentBuilder.BUILD_ONLY_REQUIRED_CONTENT);
builder.visitCMNode(cmDocument);
result.addAll(builder.list); // NPE HERE
}
namespaceInfoList = result;
}
result is initialized as a new Vector(); It then gets set to null when performing
cmDocument.getProperty(etc). Later, an attempt to result.addAll(etc) fails because result
is null.
A possible rewriting of this code would be:
public void createNamespaceInfoList() {
List result = new Vector();
if (cmDocument != null) {
List result2 = (List)
cmDocument.getProperty("http://org.eclipse.wst/cm/properties/completeNamespaceInfo");
//$NON-NLS-1$
if (result2 != null) {
result = result2;
// cut out for brevity
}
NamespaceInfoContentBuilder builder = new NamespaceInfoContentBuilder();
builder.setBuildPolicy(ContentBuilder.BUILD_ONLY_REQUIRED_CONTENT);
builder.visitCMNode(cmDocument);
result.addAll(builder.list); // NPE HERE
}
namespaceInfoList = result;
}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)