[ https://issues.apache.org/jira/browse/CAMEL-11891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16216489#comment-16216489 ]
Claus Ibsen commented on CAMEL-11891: ------------------------------------- Yeah my bad as I marked it for that - I shouldn't really have done that. Anyway next time lets be more careful and keep 2.19.x more quiet for changes. > XML2JSON Data Format and empty requests > --------------------------------------- > > Key: CAMEL-11891 > URL: https://issues.apache.org/jira/browse/CAMEL-11891 > Project: Camel > Issue Type: Improvement > Components: camel-xmljson > Affects Versions: 2.19.3 > Reporter: Richard Groote > Assignee: Önder Sezgin > Fix For: 2.19.4, 2.20.1 > > > It would be nice if the XmlJsonDataFormat can handle empty body. > In our project we upgraded from 2.14.0 to 2.19.3. > The below code no longer works in 2.19.3 when a GET request is made to a > servlet component. In our situation the body contains a stream cache and the > xml2json will fail. > A possible solution is to check the http method before doing the > unmarshalling. > <camel:choice> > <camel:when> > <camel:simple>${body} != null</camel:simple> > <camel:unmarshal ref="xml2json"/> > </camel:when> > </camel:choice> > The current solution in our project is a extension of the XmlJsonDataFormat. > In the extension the method unmarshall is overriden > {code:java} > @Override > public Object unmarshal(Exchange exchange, InputStream stream) throws > Exception { > Object inBody = exchange.getIn().getBody(); > > if(inBody == null) { > return null; > } > > if(inBody instanceof StreamCache) { > long length = ((StreamCache) inBody).length(); > if(length <= 0) { > return null; > } > } else { > if(!(inBody instanceof JSON)) { > String jsonString = > exchange.getContext().getTypeConverter().convertTo(String.class, exchange, > inBody); > if(StringUtils.isEmpty(jsonString)) { > return null; > } > } > } > > > > return super.unmarshal(exchange, stream); > } > {code} > -- This message was sent by Atlassian JIRA (v6.4.14#64029)