cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "willem Jiang (JIRA)" <>
Subject [jira] Commented: (CXF-323) Improper synchronization of getDefaultBus(), setDefaultBus()
Date Wed, 17 Jan 2007 17:30:30 GMT


willem Jiang commented on CXF-323:

It could be easy to get the initDefaultBus() to be static synchronized in CXFBusFactory. 
But in SpringBusFactory, there is ApplicationContext which hold the spring configuration is
not static, and I am not going to change it to be a static variable, because we may need to
setup different Context in the same JVM.

Basicly we add the getDefaultBus() in BusFactory interface is we need to make a bridge between
JAXWS API which has no bus to be used and CXF-RT which uses bus for holding the pluggable
I think we have too much BusFactory implementations currently. The CXFBusFactory is useless
now, we need to remove it. 

It can make the world more quite now.

Any thoughts?

> Improper synchronization of getDefaultBus(), setDefaultBus()
> ------------------------------------------------------------
>                 Key: CXF-323
>                 URL:
>             Project: CXF
>          Issue Type: Bug
>            Reporter: Jarek Gawor
>         Assigned To: willem Jiang
> getDefaultBus() method in org.apache.cxf.bus.spring.SpringBusFactory and org.apache.cxf.bus.cxf.CXFBusFactory
is improperly synchronized. The method is instance-level synchronized while it initializes
and accesses a class-level variable. Two different instances of BusFactory each calling getDefaultBus()
at the same time could return two different Bus instances...
> This method should either be changed to 'public static synchronized Bus getDefaultBus()'
or modified as for an example:
> public Bus getDefaultBus() {
>   return initDefaultBus();
> }
> private static synchronized Bus initDefaultBus() {
>   if (null == defaultBus) {
>          defaultBus = new CXFBusImpl();
>   }
>   return defaultBus;
> }
> Also, the setDefaultBus() method in both classes needs to be properly synchronized. 

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message