summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-09-30 09:14:38 +0000
committersma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-09-30 09:14:38 +0000
commit7ab44b107e98a13aa8e08ab0b597719a42c3bbce (patch)
tree306e309922d712a3b810da57f3015f61b1582b09
parent6fd9b9f03b9422d5e62e80d7d459ff63085c8073 (diff)
downloadATCD-7ab44b107e98a13aa8e08ab0b597719a42c3bbce.tar.gz
ChangeLogTag: Fri Sep 30 09:10:00 2005 Simon Massey <simon.massey@prismtech.com>
-rw-r--r--TAO/ChangeLog7
-rw-r--r--TAO/tao/PI_Server/ServerInterceptorAdapter.cpp9
2 files changed, 15 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index a3574b1fae3..78397c730d1 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,10 @@
+Fri Sep 30 09:10:00 2005 Simon Massey <simon.massey@prismtech.com>
+
+ * tao/PI_Server/ServerInterceptorAdapter.cpp:
+
+ This fixes Bugzilla 2249.
+ (Problems with TAO_HAS_EXTENDED_FT_INTERCEPTORS builds)
+
Thu Sep 29 15:07:30 2005 J.T. Conklin <jtc@acorntoolworks.com>
* orbsvcs/orbsvcs/Log/EventLogFactory_i.cpp:
diff --git a/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp b/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp
index a4d52db2b20..114ee17f0cf 100644
--- a/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp
+++ b/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp
@@ -102,7 +102,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts (
// should only be invoked if all of the interceptors registered
// with the ORB were pushed on to the flow stack by one of the
// starting endpoints (such as
- // receive_request_service_contexts()). If the above condition
+ // tao_ft_interception_point()). If the above condition
// evaluates to "true," then it is likely that a starting
// interception point was never invoked. This is of course, an
// internal error that must be corrected.
@@ -111,6 +111,13 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts (
ACE_TRY
{
+ // Copy the request scope current (RSC) to the thread scope
+ // current (TSC) upon leaving this scope, i.e. just after the
+ // receive_request_service_contexts() completes. A "guard" is
+ // used to make the copy also occur if an exception is thrown.
+ TAO::PICurrent_Guard const pi_guard (ri->server_request (),
+ false /* Copy RSC to TSC */);
+
for (size_t i = 0 ; i < server_request.interceptor_count (); ++i)
{
this->interceptors_[i]->receive_request_service_contexts (