[switchyard-issues] [JBoss JIRA] Created: (SWITCHYARD-410) JAXB transformation fails when ObjectFactory does not produce JAXBElement<?>
Keith Babo (JIRA)
jira-events at lists.jboss.org
Thu Aug 18 08:56:17 EDT 2011
JAXB transformation fails when ObjectFactory does not produce JAXBElement<?>
----------------------------------------------------------------------------
Key: SWITCHYARD-410
URL: https://issues.jboss.org/browse/SWITCHYARD-410
Project: SwitchYard
Issue Type: Bug
Components: transformation
Reporter: Keith Babo
Assignee: Tom Fennelly
Fix For: 0.2
JAXBUnmarshalTransformer assumes that the return type for unmarshal will always be a JAXBElement type, but this is not always true. Take the following generated JAXB ObjectFactory:
{noformat}
@XmlRegistry
public class ObjectFactory {
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.switchyard.demo.openshift
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link Order }
*
*/
public Order createOrder() {
return new Order();
}
/**
* Create an instance of {@link OrderAck }
*
*/
public OrderAck createOrderAck() {
return new OrderAck();
}
}
{noformat}
The above creates a ClassCastException in the transformation code. Suggest a slight tweak to the logic in JAXBUnmarshalTransformer :
{noformat}
Object unmarshalledObject = unmarshaller.unmarshal(message.getContent(Source.class));
if (unmarshalledObject instanceof JAXBElement) {
message.setContent(((JAXBElement)unmarshalledObject).getValue());
} else {
message.setContent(unmarshalledObject);
}
{noformat}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the switchyard-issues
mailing list