Bug 827330 - When multiple SOAPProcessor actions are used in one pipeline the second call sends an invalid 'Content-type' header
Summary: When multiple SOAPProcessor actions are used in one pipeline the second call ...
Keywords:
Status: NEW
Alias: None
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: JBossESB
Version: 5.2
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Nobody
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-06-01 06:54 UTC by Jason Shepherd
Modified: 2021-10-15 11:51 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker JBESB-3812 0 None Open When multiple SOAPProcessor actions are used in one pipeline the second call sends an invalid 'Content-type' header 2012-06-13 14:37:16 UTC

Description Jason Shepherd 2012-06-01 06:54:11 UTC
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.