Bug 2499

Summary: PortableServer static initialization order issue on static build
Product: TAO Reporter: fields_t
Component: otherAssignee: DOC Center Support List (internal) <tao-support>
Status: NEW ---    
Severity: normal    
Priority: P3    
Version: 1.5   
Hardware: All   
OS: All   

Description fields_t 2006-04-06 15:54:59 CDT
On static builds, the order of initialization of
_TAO_Object_Proxy_Broker_Factory_function_pointer (From Object.cpp)

Expected initialization is for
Object.cpp sets to 0
Collocated_Object_Proxy_Broker sets to pointer to
_TAO_collocation_Object_Proxy_Broker_Factory;

On static builds, the _TAO_Object_Proxy_Broker_Factory_function_pointer is 0
after static initialization is complete.
Comment 1 fields_t 2006-04-10 12:30:41 CDT
How to view the problem
Change the TAO\tests\Portable_Interceptors\Processing_Mode_Policy\Collocated
test by removing the _is_a checks from interceptors.cpp

Build a static build.
The test will fail because the _is_a is called as a remote call by the
Remote_Object_Proxy_Broker.

The Collocated_Object_Proxy_Broker should have replaced the value of
_TAO_Object_Proxy_Broker_Factory_function_pointer but it has a value of 0(zero).

We believe the static build is initializing the Object.cpp after the
Collocated_Object_Proxy_Broker.cpp resulting in the 
_TAO_Object_Proxy_Broker_Factory_function_pointer being set to 0 after
Collocated_Object_Proxy_Broker.cpp initialized it to the factory pointer.