Re: [Simple-support] Null pointer in Reference.getType when using @Converter
Brought to you by:
niallg
|
From: Lumsdon, H. <Hug...@bl...> - 2011-11-02 11:08:11
|
Thanks Neil – we’ll take a look at transform.
We also discovered if we return empty string (“”) in our converter in the event of a null value it also fixes it.
From: Niall Gallagher [mailto:gal...@ya...]
Sent: 02 November 2011 11:02
To: simple-support@lists sourceforge. net; Lumsdon, Hugo
Subject: Re: [Simple-support] Null pointer in Reference.getType when using @Converter
Try a transform for strings, coverters are for composite objects not strings.
Sent from Yahoo!7 Mail on Android
________________________________
From: Lumsdon, Hugo <Hug...@bl...>;
To: sim...@li... <sim...@li...>;
Subject: [Simple-support] Null pointer in Reference.getType when using @Converter
Sent: Mon, Oct 31, 2011 6:52:50 PM
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. |