Bug 1252416 - (6.0.x) New deployment of another SwitchYard application disables ExchangeInterceptors
(6.0.x) New deployment of another SwitchYard application disables ExchangeInt...
Status: VERIFIED
Product: JBoss Fuse Service Works 6
Classification: JBoss
Component: SwitchYard (Show other bugs)
6.0.0 GA
Unspecified Unspecified
high Severity high
: CR1
: ---
Assigned To: tcunning
Matej Melko
:
Depends On:
Blocks: 1214695
  Show dependency treegraph
 
Reported: 2015-08-11 07:06 EDT by Tadayoshi Sato
Modified: 2016-03-30 08:40 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1286688 (view as bug list)
Environment:
Last Closed:
Type: Support Patch
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 ENTESB-3811 Major Resolved [FSW 6.0.x] New deployment of another SwitchYard application disables ExchangeInterceptors 2016-09-09 12:22 EDT

  None (edit)
Description Tadayoshi Sato 2015-08-11 07:06:12 EDT
Cloned from https://issues.jboss.org/browse/ENTESB-3811

Suppose we have two SwitchYard applications, 'switchyard-example1' and 'switchyard-example2'. 'switchyard-example1' (consumer) invokes 'switchyard-example2' (provider) via SCA binding. 'switchyard-example2' has an exchange intercepter 'SimpleInterceptor'.

When we deploy 'switchyard-example2' and 'switchyard-example1' in sequence, 'SimpleInterceptor' doesn't work. The log shows:

  [example1.ConsumerServiceBean] ============================================================
  [example2.ProviderServiceBean] Received: ConsumerServiceBean
  [example1.ConsumerServiceBean] Hello, ConsumerServiceBean!
  [example1.ConsumerServiceBean] ============================================================

Then redeploying 'switchyard-example2' alone, we see it starts to work:

  [example1.ConsumerServiceBean] ============================================================
  [example2.SimpleInterceptor] ***** Before: ProviderService -> ProviderService
  [example2.ProviderServiceBean] Received: ConsumerServiceBean
  [example2.SimpleInterceptor] ***** After:  ProviderService <- ProviderService
  [example1.ConsumerServiceBean] Hello, ConsumerServiceBean!
  [example1.ConsumerServiceBean] ============================================================

But then redeploying 'switchyard-example1' alone this time, we now see it disabled again:

  [example1.ConsumerServiceBean] ============================================================
  [example2.ProviderServiceBean] Received: ConsumerServiceBean
  [example1.ConsumerServiceBean] Hello, ConsumerServiceBean!
  [example1.ConsumerServiceBean] ============================================================

Interestingly, if we redeploy 'switchyard-example1' but invoke 'switchyard-example2' in some other way (e.g. remote client invocation using 'HttpInvoker') before 'switchyard-example1' starts to invoke 'switchyard-example2', the interceptor remains working.

This observation makes me suspect that a local SCA invocation from a newly deployed application somehow overrides the bean registry with its thread local context.
Comment 1 tcunning 2015-10-12 12:11:35 EDT
Backported changes to core 1.x branch.
Comment 3 ppecka 2016-03-30 08:40:44 EDT
VERIFIED with reproducers

cd switchyard-example2
mvn clean package jboss-as:deploy
cd ../switchyard-example1
mvn clean package jboss-as:deploy

23:17:45,013 INFO [com.example.switchyard.example2.SimpleInterceptor] (DefaultQuartzScheduler-camel-5_Worker-3) * Before: Provider -> ProviderService
23:17:45,014 INFO [com.example.switchyard.example2.ProviderServiceBean] (DefaultQuartzScheduler-camel-5_Worker-3) Received: ConsumerServiceBean
23:17:45,016 INFO [com.example.switchyard.example2.SimpleInterceptor] (DefaultQuartzScheduler-camel-5_Worker-3) * After: Provider <- ProviderService
23:17:45,022 INFO [com.example.switchyard.example1.ConsumerServiceBean] (DefaultQuartzScheduler-camel-5_Worker-3) Hello, ConsumerServiceBean!
23:17:45,023 INFO [com.example.switchyard.example1.ConsumerServiceBean] (DefaultQuartzScheduler-camel-5_Worker-3) ============================================================

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