Menu

#9 Converter error returning primitive arrays

open
nobody
None
5
2010-04-26
2010-04-26
Gary Plante
No

I am declaring an element:

@Element(name = "PlainValue", required = false)
@Convert(Base64Converter.class)
private byte[] plainValue;

Using the following converter

public class Base64Converter implements Converter<byte[]> {

@Override
public byte[] read(InputNode node) throws Exception {
return Base64.decodeBase64(node.getValue());
}

@Override
public void write(OutputNode node, byte[] value) throws Exception {
node.setValue(Base64.encodeBase64String(value));
}
}

And am getting the following exception:

org.simpleframework.xml.core.InstantiationException: Type class [B is not compatible with class [B
at org.simpleframework.xml.core.Factory.getOverride(Factory.java:122)
at org.simpleframework.xml.core.PrimitiveFactory.getInstance(PrimitiveFactory.java:66)
at org.simpleframework.xml.core.Primitive.readElement(Primitive.java:180)
at org.simpleframework.xml.core.Primitive.read(Primitive.java:118)
at org.simpleframework.xml.core.Composite.readObject(Composite.java:626)
at org.simpleframework.xml.core.Composite.read(Composite.java:569)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:550)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:466)
at org.simpleframework.xml.core.Composite.read(Composite.java:350)
at org.simpleframework.xml.core.Composite.readDefault(Composite.java:245)
at org.simpleframework.xml.core.Composite.read(Composite.java:215)
at org.simpleframework.xml.core.Composite.read(Composite.java:185)
at org.simpleframework.xml.core.Composite.read(Composite.java:133)
at org.simpleframework.xml.core.Composite.readObject(Composite.java:626)
at org.simpleframework.xml.core.Composite.read(Composite.java:569)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:550)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:466)
at org.simpleframework.xml.core.Composite.read(Composite.java:350)
at org.simpleframework.xml.core.Composite.readDefault(Composite.java:245)
at org.simpleframework.xml.core.Composite.read(Composite.java:215)
at org.simpleframework.xml.core.Composite.read(Composite.java:185)
at org.simpleframework.xml.core.Composite.read(Composite.java:133)
at org.simpleframework.xml.core.Composite.readObject(Composite.java:626)
at org.simpleframework.xml.core.Composite.read(Composite.java:569)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:550)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:466)
at org.simpleframework.xml.core.Composite.read(Composite.java:350)
at org.simpleframework.xml.core.Composite.readDefault(Composite.java:245)
at org.simpleframework.xml.core.Composite.read(Composite.java:215)
at org.simpleframework.xml.core.Composite.read(Composite.java:185)
at org.simpleframework.xml.core.Composite.read(Composite.java:133)
at org.simpleframework.xml.core.Composite.readObject(Composite.java:626)
at org.simpleframework.xml.core.Composite.read(Composite.java:569)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:550)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:466)
at org.simpleframework.xml.core.Composite.read(Composite.java:350)
at org.simpleframework.xml.core.Composite.readDefault(Composite.java:245)
at org.simpleframework.xml.core.Composite.read(Composite.java:215)
at org.simpleframework.xml.core.Composite.read(Composite.java:185)
at org.simpleframework.xml.core.Composite.read(Composite.java:133)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:184)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:161)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:118)
at org.simpleframework.xml.core.Composite.readObject(Composite.java:626)
at org.simpleframework.xml.core.Composite.read(Composite.java:569)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:550)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:466)
at org.simpleframework.xml.core.Composite.read(Composite.java:350)
at org.simpleframework.xml.core.Composite.readDefault(Composite.java:245)
at org.simpleframework.xml.core.Composite.read(Composite.java:215)
at org.simpleframework.xml.core.Composite.read(Composite.java:185)
at org.simpleframework.xml.core.Composite.read(Composite.java:133)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.Persister.read(Persister.java:602)
at org.simpleframework.xml.core.Persister.read(Persister.java:583)
at org.simpleframework.xml.core.Persister.read(Persister.java:545)
at org.simpleframework.xml.core.Persister.read(Persister.java:523)

Discussion


Log in to post a comment.