summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngelo Corsaro <angelo@icorsaro.net>2001-03-21 00:57:54 +0000
committerAngelo Corsaro <angelo@icorsaro.net>2001-03-21 00:57:54 +0000
commit3a127e35c4ceb9e0b557771eb1aaa924a54f48af (patch)
treeeb959f83f828f23f3c7229acd161bdc1a67f5a2d
parentf6c4ec465dcf1cab642bc737c4354a93c6ab3f93 (diff)
downloadATCD-3a127e35c4ceb9e0b557771eb1aaa924a54f48af.tar.gz
ChangeLogTag: Tue Mar 20 18.54:01 Angelo Corsaro <corsaro@cs.wustl.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a25
-rw-r--r--TAO/tao/PortableServer/POA.cpp78
-rwxr-xr-xTAO/tests/RTCORBA/Banded_Connections/run_test.pl6
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);