-
Notifications
You must be signed in to change notification settings - Fork 387
Description
Version
ACE: 7.0.11, TAO: 3.0.11 (and others)
Host machine and operating system
Occurs on all attempted builds (Windows and macOS).
Compiler name and version (including patch level)
Apple clang version 14.0.3 (clang-1403.0.22.14.1) and VS 2022
The $ACE_ROOT/ace/config.h file
ace/config-windows.h or ace/config-macosx-mojave.h
The $ACE_ROOT/include/makeinclude/platform_macros.GNU file
None. (Using CMake build)
Contents of $ACE_ROOT/bin/MakeProjectCreator/config/default.features
None.
AREA/CLASS/EXAMPLE AFFECTED:
CosEventChannelAdmin::EventChannel and possibly other generated client code.
The problem effects:
Runtime.
Synopsis
Invoking ->for_suppliers() on a CosEventChannelAdmin::EventChannel results in an internal system exception.
Description
When using ACE+TAO built with CMake, invoking ->for_suppliers() on a CosEventChannelAdmin::EventChannel results in an internal system exception. This is because the TAO::TAO_CO_THRU_POA_STRATEGY bit is not passed to the TAO::Invocation_Adapter constructor within the source implementation of that function (CosEventChannelAdminC.cpp).
TAO::Invocation_Adapter _invocation_call (
this,
_the_tao_operation_signature,
1,
"for_suppliers",
13,
TAO::TAO_CO_NONE,
TAO::TAO_TWOWAY_INVOCATION
,
TAO::TAO_SYNCHRONOUS_INVOCATION,
false
);However, when built with the "full source distribution" with build files already present, the Invocation_Adapter is constructed with the TAO::TAO_CO_THRU_POA_STRATEGY bit, as follows:
TAO::Invocation_Adapter _invocation_call (
this,
_the_tao_operation_signature,
1,
"for_suppliers",
13,
TAO::TAO_CO_NONE | TAO::TAO_CO_THRU_POA_STRATEGY,
TAO::TAO_TWOWAY_INVOCATION
,
TAO::TAO_SYNCHRONOUS_INVOCATION,
false
);What causes this bit to be missing?