Bug 827330 - When multiple SOAPProcessor actions are used in one pipeline the second call sends an invalid 'Content-type' header
When multiple SOAPProcessor actions are used in one pipeline the second call ...
Status: NEW
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: JBossESB (Show other bugs)
5.2
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: kconner
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-06-01 02:54 EDT by Jason Shepherd
Modified: 2012-08-14 09:38 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
JBoss Issue Tracker JBESB-3812 None Open When multiple SOAPProcessor actions are used in one pipeline the second call sends an invalid 'Content-type' header 2012-06-13 10:37:16 EDT

  None (edit)
Description Jason Shepherd 2012-06-01 02:54:11 EDT
Description of problem:
When multiple SOAPProcessors are used in a action processing pipeline, the second call will send an invalid 'Content-type' header, which will cause the second wrapper webservice to fail with the following message:

2012-06-01 16:37:26,453 ERROR [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] (pool-88-thread-1) SOAP request exception
javax.xml.soap.SOAPException: Could not parse content type:javax.mail.internet.ParseException: Expected '/', got @
at org.jboss.ws.core.soap.MessageFactoryImpl.getContentType(MessageFactoryImpl.java:318)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:212)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:193)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:451)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:294)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:203)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:129)
at org.jboss.soa.esb.actions.soap.SOAPProcessor.process(SOAPProcessor.java:212)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:649)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:603)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:433)
at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:550)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)


Version-Release number of selected component (if applicable):
4.10

How reproducible:
Run attached Example

Steps to Reproduce:
1. Copy the attached project into the $SOA_HOME/samples/quickstarts directory
2. Deploy it by running 'ant deploy'
3. Test it by running 'ant runtest'
4. Obverse the error in the logs.

  
Actual results:
Exception above

Expected results:
Second call doesn't thrown an exception.

Additional info:
Workaround Exists:

Put in a custom action before the second SOAPProcessor, that removed the 'Content-type' header.

<action class="com.test.util.StripContentTypeProperty"
name="StripContentTypeProperty" process="stripProperties"/>

----------------------
package com.test.util;

import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.actions.annotation.Process;

/**

    Strips the "ContentType" property from the JBoss ESB message properties list.
    */
    public class StripContentTypeProperty
    {
    /**
    Strips the "ContentType" property from the JBoss ESB message properties list.
    @param message (required) The ESB message
    @return The ESB message
    */
    @Process
    public Message stripProperties(Message message) { message.getProperties().remove("Content-Type"); return message; }

    }

Note You need to log in before you can comment on or make changes to this bug.