Bug 1252416 - (6.0.x) New deployment of another SwitchYard application disables ExchangeInterceptors
Summary: (6.0.x) New deployment of another SwitchYard application disables ExchangeInt...
Keywords:
Status: VERIFIED
Alias: None
Product: JBoss Fuse Service Works 6
Classification: JBoss
Component: SwitchYard
Version: 6.0.0 GA
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: CR1
: ---
Assignee: tcunning
QA Contact: Matej Melko
URL:
Whiteboard:
Depends On:
Blocks: 1214695
TreeView+ depends on / blocked
 
Reported: 2015-08-11 11:06 UTC by Tadayoshi Sato
Modified: 2023-02-27 08:27 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1286688 (view as bug list)
Environment:
Last Closed:
Type: Support Patch
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker ENTESB-3811 0 Major Resolved [FSW 6.0.x] New deployment of another SwitchYard application disables ExchangeInterceptors 2016-09-09 16:22:09 UTC

Description Tadayoshi Sato 2015-08-11 11:06:12 UTC
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 16:11:35 UTC
Backported changes to core 1.x branch.

Comment 3 ppecka 2016-03-30 12:40:44 UTC
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.