diff options
author | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-09-30 09:14:38 +0000 |
---|---|---|
committer | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-09-30 09:14:38 +0000 |
commit | 7ab44b107e98a13aa8e08ab0b597719a42c3bbce (patch) | |
tree | 306e309922d712a3b810da57f3015f61b1582b09 | |
parent | 6fd9b9f03b9422d5e62e80d7d459ff63085c8073 (diff) | |
download | ATCD-7ab44b107e98a13aa8e08ab0b597719a42c3bbce.tar.gz |
ChangeLogTag: Fri Sep 30 09:10:00 2005 Simon Massey <simon.massey@prismtech.com>
-rw-r--r-- | TAO/ChangeLog | 7 | ||||
-rw-r--r-- | TAO/tao/PI_Server/ServerInterceptorAdapter.cpp | 9 |
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 ( |