This is a bug.
You should be able to achieve the desired behavior using the new EIP
component.  Take a look at
http://servicemix.org/servicemix-eip#servicemix-eip-StaticRoutingSlip.
Errors and faults are reported back to the consumer.

Cheers,
Guillaume Nodet

On 4/26/06, Juergen Mayrbaeurl <[EMAIL PROTECTED]> wrote:
>
> I'm using a chained component to do simple service orchestration. The first
> component in the chain is a ValidateComponent and the second a simple
> CopyTransformer:
>
> <sm:activationSpec
>         componentName="BPKAbfrageVerarbeitung"
>         service="test:BPKAbfrageVerarbeitung"
>         endpoint="BPKAbfrageVerarbeitung"
>         destinationService="test:receiver">
>
>         <sm:component>
>                 <bean xmlns=""
>                         
> class="org.apache.servicemix.components.util.ChainedComponent">
>                         <property name="services">
>                                 <list>
>                                         <bean 
> class="javax.xml.namespace.QName">
>                                                 <constructor-arg 
> value="http://www.sozialversicherung.at/zpvtest"/>
>                                                 <constructor-arg 
> value="BPKAbfrageValidierung"/>
>                                         </bean>
>                                         <bean 
> class="javax.xml.namespace.QName">
>                                                 <constructor-arg 
> value="http://www.sozialversicherung.at/zpvtest"/>
>                                                 <constructor-arg 
> value="BPKMockErgebnis"/>
>                                         </bean>
>                                 </list>
>                         </property>
>                 </bean>
>         </sm:component>
> </sm:activationSpec>
>
>
> <sm:activationSpec
>         componentName="BPKAbfrageValidierung"
>         service="test:BPKAbfrageValidierung"
>         endpoint="BPKAbfrageValidierung">
>         <sm:component>
>                                 <bean
> class="org.apache.servicemix.components.validation.ValidateComponent">
>                 <property name="schemaResource"
>                         value="ZMRBPK.xsd"/>
>                         </bean>
>         </sm:component>
> </sm:activationSpec>
>
> If the validations fails, the ValidateComponent throws an FaultException
> which will be catched by itself in
> TransformComponentSupport:onMessageExchange. PojoSupport:fail gets called,
> which sets the fault in the MessageExchange.
> In the next call to ChainedComponent:invokeService the Status of
> MessageExchange is only checked for ExchangeStatus.ERROR. Therefore the
> ChainedComponent continues to invoke the next service in the chain, which
> should not happen.
>
> My second service in the ChainedComponent is a CopyTransformer. In my
> context (and because of not stopping to invoke the services) the component
> gets called with NULL for the IN message, causing a NULL pointer exception,
> because the CopyTransformer doesn't check the parameter value for the IN
> message. The CopyTransformer should check the parameters in
> CopyTransformer:transform() and throw an exception, if NULL values are
> passed in (or do nothing, if the from is NULL).
>
> Kind regards
> Juergen
> --
> View this message in context: 
> http://www.nabble.com/ChainedComponent-continues-invoking-services-after-failure-t1510668.html#a4097890
> Sent from the ServiceMix - User forum at Nabble.com.
>
>

Reply via email to