|
Suppose a SwitchYard application has an outgoing transformer from a component to a composite service, say a Java transformer java:com.example.switchyard.transformer_undeploy.HelloOut -> java:java.lang.String. Then, when the application is attempted to be undeployed while a message still being processed at its component, it eventually throws the following exception at the end of undeployment and the ongoing message processing fails:
org.switchyard.HandlerException: SWITCHYARD014011: Transformations not applied. Required payload type of 'java:java.lang.String'. Actual payload type is 'java:com.example.switchyard.transformer_undeploy.HelloOut'. You must define and register a Transformer to transform between these types.
|
at org.switchyard.handlers.TransformHandler.handleMessage(TransformHandler.java:99)
|
at org.switchyard.bus.camel.processors.HandlerProcessor.process(HandlerProcessor.java:61)
|
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
|
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
|
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
|
...
|
It appears that the transformer is somehow unregistered earlier than the work-in-progress component, thus graceful undeployment is inhibited where the ongoing messages are expected to be completed safely before the application is completely undeployed.
|