[Simple-support] Null pointer in Reference.getType when using @Converter
Brought to you by:
niallg
|
From: Lumsdon, H. <Hug...@bl...> - 2011-10-31 19:17:19
|
Hi,
We are trying to escape Xhtml on file read using an @Converter tag - however Simple falls over with a NPE when we have empty tags in our XML source docs - e.g.
<message/>
Here is an example of the @Converter annotation:
@Element(required = false)
@Convert(EscapeXhtmlConverter.class)
private String message = "";
And here is the very simple EscapeXhtmlConverter class:
import org.simpleframework.xml.convert.Converter;
import org.simpleframework.xml.stream.InputNode;
import org.simpleframework.xml.stream.OutputNode;
import freemarker.template.utility.StringUtil;
// TODO: Auto-generated Javadoc
/**
* The Class EscapeXmlConverter.
*/
public class EscapeXhtmlConverter implements Converter<String> {
/* (non-Javadoc)
* @see org.simpleframework.xml.convert.Converter#read(org.simpleframework.xml.stream.InputNode)
*/
@Override
public String read(InputNode node) throws Exception {
String value = node.getValue();
String escapedValue = StringUtil.XHTMLEnc(value);
return escapedValue;
}
@Override
public void write(OutputNode node, String value) throws Exception {
// Do nothing for now
}
}
And the stack trace:
java.lang.NullPointerException
at org.simpleframework.xml.convert.Reference.getType(Reference.java:70)
at org.simpleframework.xml.core.Factory.getOverride(Factory.java:143)
at org.simpleframework.xml.core.PrimitiveFactory.getInstance(PrimitiveFactory.java:82)
at org.simpleframework.xml.core.Primitive.readElement(Primitive.java:186)
at org.simpleframework.xml.core.Primitive.read(Primitive.java:124)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:687)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:635)
at org.simpleframework.xml.core.Composite.readUnion(Composite.java:610)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:593)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:506)
at org.simpleframework.xml.core.Composite.readSection(Composite.java:388)
at org.simpleframework.xml.core.Composite.read(Composite.java:367)
at org.simpleframework.xml.core.Composite.readDefault(Composite.java:262)
at org.simpleframework.xml.core.Composite.read(Composite.java:232)
at org.simpleframework.xml.core.Composite.read(Composite.java:202)
at org.simpleframework.xml.core.Composite.read(Composite.java:150)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.Persister.read(Persister.java:632)
at org.simpleframework.xml.core.Persister.read(Persister.java:613)
at org.simpleframework.xml.core.Persister.read(Persister.java:591)
at org.simpleframework.xml.core.Persister.read(Persister.java:550)
at org.simpleframework.xml.core.Persister.read(Persister.java:451)
at com.blackrock.ebiz.corecms.dao.shared.XmlMarshallerImpl.deserialise(XmlMarshallerImpl.java:30)
....
Thanks!
THIS MESSAGE AND ANY ATTACHMENTS ARE CONFIDENTIAL, PROPRIETARY, AND MAY BE PRIVILEGED. If this message was misdirected, BlackRock, Inc. and its subsidiaries, ("BlackRock") does not waive any confidentiality or privilege. If you are not the intended recipient, please notify us immediately and destroy the message without disclosing its contents to anyone. Any distribution, use or copying of this e-mail or the information it contains by other than an intended recipient is unauthorized. The views and opinions expressed in this e-mail message are the author's own and may not reflect the views and opinions of BlackRock, unless the author is authorized by BlackRock to express such views or opinions on its behalf. All email sent to or from this address is subject to electronic storage and review by BlackRock. Although BlackRock operates anti-virus programs, it does not accept responsibility for any damage whatsoever caused by viruses being passed.
--
BlackRock Advisors (UK) Limited is authorized and regulated by The Financial Services Authority. Registered in England. Registered No:796793. Registered Office: 33 King William Street, London EC4R 9AS. |