diff options
author | corsaro <corsaro@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-03-21 00:57:54 +0000 |
---|---|---|
committer | corsaro <corsaro@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-03-21 00:57:54 +0000 |
commit | 9460abd2c3b689988d48cab260f056bec5e93430 (patch) | |
tree | eb959f83f828f23f3c7229acd161bdc1a67f5a2d | |
parent | 07487cc0b9fa4180d67a7289337802f0296c955f (diff) | |
download | ATCD-9460abd2c3b689988d48cab260f056bec5e93430.tar.gz |
ChangeLogTag: Tue Mar 20 18.54:01 Angelo Corsaro <corsaro@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 25 | ||||
-rw-r--r-- | TAO/tao/PortableServer/POA.cpp | 78 | ||||
-rwxr-xr-x | TAO/tests/RTCORBA/Banded_Connections/run_test.pl | 6 |
3 files changed, 77 insertions, 32 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 5cf901c6c49..98536772ccd 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,27 @@ +Tue Mar 20 18.54:01 Angelo Corsaro <corsaro@cs.wustl.edu> + + * tao/PortableServer/POA.cpp (key_to_stub_i): + + This was source of most of the the RTCORBA test failure. + The problem was that the wrong Acceptor Filter were being used, + this had as a conseguence the fact that some useful endpoint + associated to the erroneously filtered acceptor were filtered + as well. + + * tao/RT_Invocation_Endpoint_Selectors.cpp: + + Reverted the change made in the in the + Priority_Endpoint_Selector. A description of the + change that were done is in: + Sun Mar 18 23:50:28 2001 Angelo Corsaro <corsaro@cs.wustl.edu> + + * tests/RTCORBA/Banded_Connections/run_test.pl: + + The perl script was passing a priority that did not match one + of the endpoints exported in the server ORB, this was causing the + request to a CORBA object with CLIENT_PROPAGATED policy and no + priority bands to fail. + Tue Mar 20 18:19:31 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu> * orbsvcs/tests/AVStreams/Simple_Three_Stage/sender.h: @@ -18256,3 +18280,4 @@ Thu Oct 12 13:16:05 2000 Marina Spivak <marina@cs.wustl.edu> Thu Oct 12 12:17:44 2000 Angelo <corsaro@cs.wustl.edu> * TAO version 1.1.10 released. +>>>>>>> 1.2897 diff --git a/TAO/tao/PortableServer/POA.cpp b/TAO/tao/PortableServer/POA.cpp index 766ca09eab0..11f30b21836 100644 --- a/TAO/tao/PortableServer/POA.cpp +++ b/TAO/tao/PortableServer/POA.cpp @@ -4134,51 +4134,71 @@ TAO_POA::key_to_stub_i (const TAO_ObjectKey &key, TAO_Stub *data = 0; - // If POA has RTCORBA::SERVER_DECLARED priority model, - // each object can potentially have a different priority. - // To preserve correctness with multithreading applications, a - // separate filter must be used for each object. Here we allocate a - // filter of the stack, if necessary. - if (this->policies ().priority_model () - == TAO_POA_Policies::SERVER_DECLARED - && this->policies ().server_priority () != priority) - { + // If the POA has RTCORBA::SERVER_DECLARED priority model + // then regardless of the fact that there are or that there + // are not bands then we need to pass only one endpoint that + // is either the one associated to the bands to which the + // server belongs, or the one associated to the server priority. + // + // If the POA has RTCORBA::CLIENT_EXPOSED, than all endpoints + // should be passed. #if (TAO_HAS_RT_CORBA == 1) - + + if (this->policies ().priority_model () + == TAO_POA_Policies::SERVER_DECLARED) + { if (this->policies ().priority_bands () != 0) { - TAO_Priority_Acceptor_Filter + TAO_Bands_Acceptor_Filter filter (this->policies ().server_protocol ()->protocols_rep (), - priority); + this->policies ().priority_bands ()->priority_bands_rep()); data = this->orb_core_.create_stub_object (key, type_id, client_exposed_policies._retn (), &filter, ACE_TRY_ENV); + ACE_CHECK_RETURN (0); } - else - { - data = this->orb_core_.create_stub_object (key, - type_id, - client_exposed_policies._retn (), - this->acceptor_filter_, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - } -#endif /* TAO_HAS_RT_CORBA == 1 */ - } - else - { + { + RTCORBA::Priority object_priority = + this->policies ().server_priority () > priority ? this->policies ().server_priority () : priority; + TAO_Priority_Acceptor_Filter filter (this->policies ().server_protocol ()->protocols_rep (), + object_priority); + + data = this->orb_core_.create_stub_object (key, + type_id, + client_exposed_policies._retn (), + &filter, + ACE_TRY_ENV); + ACE_CHECK_RETURN (0); + } + } + else if (this->policies ().priority_model () + == TAO_POA_Policies::CLIENT_PROPAGATED) + { + TAO_Server_Protocol_Acceptor_Filter filter ((this->policies ().server_protocol ()->protocols_rep ())); data = this->orb_core_.create_stub_object (key, - type_id, - client_exposed_policies._retn (), - this->acceptor_filter_, - ACE_TRY_ENV); + type_id, + client_exposed_policies._retn (), + &filter, + ACE_TRY_ENV); ACE_CHECK_RETURN (0); } + +#else + TAO_Server_Protocol_Acceptor_Filter filter ((this->policies ().server_protocol ()->protocols_rep ())); + data = this->orb_core_.create_stub_object (key, + type_id, + client_exposed_policies._retn (), + &filter, + ACE_TRY_ENV); + ACE_CHECK_RETURN (0); + +#endif /* TAO_HAS_RT_CORBA */ + return data; } diff --git a/TAO/tests/RTCORBA/Banded_Connections/run_test.pl b/TAO/tests/RTCORBA/Banded_Connections/run_test.pl index ed1088bc5b5..43396466e74 100755 --- a/TAO/tests/RTCORBA/Banded_Connections/run_test.pl +++ b/TAO/tests/RTCORBA/Banded_Connections/run_test.pl @@ -27,7 +27,7 @@ print STDERR "\n********** RTCORBA Priority Banded Connections Unit Test\n"; $server_args = "-n $iorfile1 -o $iorfile2 -b bands.unix -ORBSvcConf $server_conf " - ."-ORBdebuglevel 1 -p 67 -w 78 " + ."-p 67 -w 78 " ."-ORBendpoint iiop://$TARGETHOSTNAME:0/priority=69 " ."-ORBendpoint iiop://$TARGETHOSTNAME:0/priority=76 " ."-ORBendpoint iiop://$TARGETHOSTNAME:0/priority=80 "; @@ -39,14 +39,14 @@ $client_args = if ($^O eq "MSWin32") { $server_args = "-n $iorfile1 -o $iorfile2 -b bands.nt -ORBSvcConf $server_conf " - ."-ORBdebuglevel 1 -p 1 -w 3 " + ."-p 1 -w 3 " ."-ORBendpoint iiop://$TARGETHOSTNAME:0/priority=2 " ."-ORBendpoint iiop://$TARGETHOSTNAME:0/priority=4 " ."-ORBendpoint iiop://$TARGETHOSTNAME:0/priority=6 "; $client_args = "-n file://$iorfile1 -o file://$iorfile2 " - ."-a 1 -b 4 -c 6 "; + ."-a 2 -b 4 -c 6 "; } $SV = new PerlACE::Process ("server", $server_args); |