cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrea Smyth (JIRA)" <>
Subject [jira] Created: (CXF-29) Set DatatypeProvider
Date Wed, 06 Sep 2006 15:16:23 GMT
Set DatatypeProvider

                 Key: CXF-29
             Project: CeltiXfire
          Issue Type: Bug
          Components: JAXB Databinding
            Reporter: Andrea Smyth

When you instantiate a class that is mapped from an element which has a base64Binary attribute
with a default value, and subsequently call the getter for this attribute, the invocation
will fail with a NPE unless somwhere in the code a DatatypeConverter was set via DatatypeConverter.setDatatypeConverter(javax.xml.bind.DatatypeConverterInterface

e.g. generated code:

public class Foo {
public byte[] getBase64BinaryAttr() {
       if (base64BinaryAttr == null) {
           return DatatypeConverter.parseBase64Binary("wxyz");
       } else {
           return base64BinaryAttr;

application code:

Foo foo = new ObjectFactory().createFoo();
DatatypeConverter.setDatatypeConverter(new DatatypeConverterImpl());
byte[] value = foo.getBase64BinaryAttr()

We should take care that somewhere in the runtime a DatatypeConverter is set, possibly through
loading (but not necessarily registering) an extension in the rt-databinding-jaxb module?
From the javadoc:
" JAXB Providers are required to call this method at some point before allowing any of the
JAXB client marshal or unmarshal operations to occur".
We cannot take the DatatypeConverterImpl provided by sun (in the com.sun.xml.bind jaxb-impl.jar)
as this has a protected constructor, but could use the one from jaxme project

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message