summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog43
-rw-r--r--TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp2
-rwxr-xr-xTAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl8
-rw-r--r--TAO/orbsvcs/examples/ImR/Combined_Service/start_all.conf2
-rw-r--r--TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.h2
-rw-r--r--TAO/orbsvcs/orbsvcs/Trader/Trader_Interfaces.h82
-rw-r--r--TAO/orbsvcs/orbsvcs/Trader/Trader_Utils.h8
-rwxr-xr-xTAO/performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl15
-rw-r--r--TAO/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp9
-rw-r--r--TAO/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp9
-rw-r--r--TAO/tao/PortableServer/RequestProcessingStrategyServantActivator.cpp9
-rw-r--r--TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp9
-rw-r--r--TAO/tests/AMH_Exceptions/server.cpp2
-rw-r--r--TAO/tests/Bug_1361_Regression/Server_Thread_Pool.cpp5
-rw-r--r--TAO/tests/Bug_1476_Regression/Sender_i.h2
-rw-r--r--TAO/tests/Bug_1476_Test/client.cpp126
-rw-r--r--TAO/tests/Codec/client.cpp4
-rw-r--r--TAO/tests/DII_AMI_Forward/server_interceptor.cpp4
-rw-r--r--TAO/tests/MProfile_Connection_Timeout/client.cpp4
-rw-r--r--TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.cpp10
-rw-r--r--TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.h2
-rw-r--r--TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.cpp10
-rw-r--r--TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.h2
-rw-r--r--TAO/tests/NestedUpcall/Triangle_Test/Triangle_Test.idl4
-rw-r--r--TAO/tests/NestedUpcall/Triangle_Test/initiator.cpp8
-rwxr-xr-xTAO/tests/NestedUpcall/Triangle_Test/run_test.pl4
-rw-r--r--TAO/tests/ORB_shutdown/Foo_Bar.cpp9
-rw-r--r--TAO/tests/Oneways_Invoking_Twoways/Sender_i.h2
28 files changed, 263 insertions, 133 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index afe2e010c07..6b600ddfd74 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,46 @@
+Thu Sep 23 12:50:25 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * orbsvcs/orbsvcs/Trader/Service_Type_Repository.h:
+ * orbsvcs/orbsvcs/Trader/Trader_Utils.h:
+ * orbsvcs/orbsvcs/Trader/Trader_Interfaces.h:
+ * orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp:
+ Removed non-ASCII characters in comments.
+
+ * orbsvcs/examples/ImR/Combined_Service/start_all.conf:
+ * orbsvcs/examples/ImR/Combined_Service/run_test.pl:
+ Extended timeouts. Previous ones were too short on valgrind builds.
+
+ * tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp:
+ * tao/PortableServer/RequestProcessingStrategyServantActivator.cpp:
+ * tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp:
+ * tao/PortableServer/RequestProcessingStrategyServantLocator.cpp:
+ Added code that ignores any exception from the servant's cleanup.
+ This fixes a problem where servant wasn't removed from a poa in case
+ servant's destructor threw an exception.
+
+ * tests/ORB_shutdown/Foo_Bar.cpp:
+ Don't allow exceptions to propagate out of the servant's destructor.
+
+ * performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl:
+ Extended the test so that it can run without SHMIOP part.
+
+ * tests/Bug_1361_Regression/Server_Thread_Pool.cpp:
+ * tests/Bug_1476_Regression/Sender_i.h:
+ * tests/Codec/client.cpp:
+ * tests/DII_AMI_Forward/server_interceptor.cpp:
+ * tests/NestedUpcall/Triangle_Test/initiator.cpp:
+ * tests/NestedUpcall/Triangle_Test/Object_A_i.cpp:
+ * tests/NestedUpcall/Triangle_Test/Object_B_i.cpp:
+ * tests/NestedUpcall/Triangle_Test/Object_A_i.h:
+ * tests/NestedUpcall/Triangle_Test/Object_B_i.h:
+ * tests/NestedUpcall/Triangle_Test/Triangle_Test.idl:
+ * tests/NestedUpcall/Triangle_Test/run_test.pl:
+ * tests/AMH_Exceptions/server.cpp:
+ * tests/MProfile_Connection_Timeout/client.cpp:
+ * tests/Oneways_Invoking_Twoways/Sender_i.h:
+ * tests/Bug_1476_Test/client.cpp:
+ Fixed memory leaks local to these tests.
+
Thu Sep 23 09:34:36 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* tao/ZIOP/ZIOP.h:
diff --git a/TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp b/TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp
index 03de6907c61..5b4e4c34e88 100644
--- a/TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp
+++ b/TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp
@@ -83,7 +83,7 @@ int TAO::FT_DefaultFaultAnalyzer::validate_event_type (
//
// The filterable_data part of the event body contains the
// identity of the crashed object as four name-value pairs: the
- // fault tolerance domain identifier, the member�s location
+ // fault tolerance domain identifier, the member's location
// identifier, the repository identifier and the object group
// identifier. The Fault Notifier filters events based on the
// domain_name, the type_name, and the four identifiers. All
diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl b/TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl
index 52eca0765a0..c6d66ff9da2 100755
--- a/TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl
+++ b/TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl
@@ -69,8 +69,8 @@ my $status = 0;
sub print_output
{
my $output_file = $_[0];
- open( TEST_OUTPUT, "< $output_file" ) or return -1;
- while( <TEST_OUTPUT> ) {
+ open (TEST_OUTPUT, "< $output_file" ) or return -1;
+ while (<TEST_OUTPUT>) {
print;
}
close (TEST_OUTPUT);
@@ -125,7 +125,7 @@ sub do_test
}
## Wait a little bit for everything to get started
- sleep(2);
+ sleep(10);
print STDERR "Starting test_server -orbuseimr 1 $imr_initref\n";
$SERV->Arguments ("-ORBLogFile $output_files[$id_serv_log] -orbuseimr 1 $imr_initref");
@@ -136,7 +136,7 @@ sub do_test
}
## Wait a little bit for everything to get started
- sleep(2);
+ sleep(10);
print STDERR "Starting client\n";
# The client should pass the simple test
diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/start_all.conf b/TAO/orbsvcs/examples/ImR/Combined_Service/start_all.conf
index 23e3db5379c..08164baf6be 100644
--- a/TAO/orbsvcs/examples/ImR/Combined_Service/start_all.conf
+++ b/TAO/orbsvcs/examples/ImR/Combined_Service/start_all.conf
@@ -1,2 +1,2 @@
-dynamic ImR_Locator_Loader Service_Object * TAO_ImR_Locator:_make_ImR_Locator_Loader() '-orbcollocation no -orbobjrefstyle url -t 5 -d 2 -orbendpoint iiop://:9999'
+dynamic ImR_Locator_Loader Service_Object * TAO_ImR_Locator:_make_ImR_Locator_Loader() '-orbcollocation no -orbobjrefstyle url -t 10 -d 2 -orbendpoint iiop://:9999'
dynamic ImR_Activator_Loader Service_Object * TAO_ImR_Activator:_make_ImR_Activator_Loader() '-orbcollocation per-orb -d 2 -orbinitref ImplRepoService=corbaloc::localhost:9999/ImplRepoService'
diff --git a/TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.h b/TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.h
index 4c6add58960..d247e3754a1 100644
--- a/TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.h
+++ b/TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.h
@@ -73,7 +73,7 @@ public:
// If the "name" parameter is malformed, then the
// CosTrading::IllegalServiceType exception is raised. If the type
- // already exists, then the ServiceTypeExists exception is raised. °
+ // already exists, then the ServiceTypeExists exception is raised.
// If the "if_name" parameter is not a sub-type of the interface
// associated with a service type from which this service type is
// derived, such that substitutability would be violated, then the
diff --git a/TAO/orbsvcs/orbsvcs/Trader/Trader_Interfaces.h b/TAO/orbsvcs/orbsvcs/Trader/Trader_Interfaces.h
index c9c562d8d3a..8548c920629 100644
--- a/TAO/orbsvcs/orbsvcs/Trader/Trader_Interfaces.h
+++ b/TAO/orbsvcs/orbsvcs/Trader/Trader_Interfaces.h
@@ -137,7 +137,7 @@ public:
// constraint.
// The returned offers are passed back in one of two ways (or a
- // combination of both). °The "offers" return result conveys a list
+ // combination of both). The "offers" return result conveys a list
// of offers and the "offer_itr" is a reference to an interface at
// which offers can be obtained. The "how_many" parameter states
// how many offers are to be returned via the "offers" result, any
@@ -297,14 +297,14 @@ public:
// identifies the service type, which contains the interface type of
// the "reference" and a set of named property types that may be
// used in further describing this offer (i.e., it restricts what is
- // acceptable in the properties parameter). °
+ // acceptable in the properties parameter).
// If the string
// representation of the "type" does not obey the rules for
- // identifiers, then an IllegalServiceType exception is raised. ° If
+ // identifiers, then an IllegalServiceType exception is raised. If
// the "type" is correct syntactically but a trader is able to
// unambiguously determine that it is not a recognized service type,
- // then an UnknownServiceType exception is raised. °
+ // then an UnknownServiceType exception is raised.
// If the trader
// can determine that the interface type of the "reference"
@@ -314,21 +314,21 @@ public:
// the property value types defined for those names. They describe
// the service being offered. This description typically covers
// behavioral, non-functional, and non-computational aspects of the
- // service. °
+ // service.
// If any of the property names do not obey the syntax
// rules for PropertyNames, then an IllegalPropertyName exception is
- // raised. °
+ // raised.
// If the type of any of the property values is not the
// same as the declared type (declared in the service type), then a
// PropertyTypeMismatch exception is raised.
- // ° If an attempt is made to assign a dynamic property value to a
+ // If an attempt is made to assign a dynamic property value to a
// readonly property, then the ReadonlyDynamicProperty exception is
- // raised. ° If the "properties" parameter omits any property
+ // raised. If the "properties" parameter omits any property
// declared in the service type with a mode of mandatory, then a
- // MissingMandatoryProperty exception is raised. ° If two or more
+ // MissingMandatoryProperty exception is raised. If two or more
// properties with the same property name are included in this
// parameter, the DuplicatePropertyName exception is raised.
// END SPEC
@@ -339,11 +339,11 @@ public:
// The withdraw operation removes the service offer from the trader
// (i.e., after withdraw the offer can no longer be returned as the
// result of a query). The offer is identified by the "id" parameter
- // which was originally returned by export. ° If the string
+ // which was originally returned by export. If the string
// representation of "id" does not obey the rules for offer
- // identifiers, then an IllegalOfferId exception is raised. ° If the
+ // identifiers, then an IllegalOfferId exception is raised. If the
// "id" is legal but there is no offer within the trader with that
- // "id," then an UnknownOfferId exception is raised. ° If the "id"
+ // "id," then an UnknownOfferId exception is raised. If the "id"
// identifies a proxy offer rather than an ordinary offer, then a
// ProxyOfferId exception is raised.
// END SPEC
@@ -357,11 +357,11 @@ public:
// of the offered service, the "type" of the service offer, and the
// "properties" that describe this offer of service. The offer is
// identified by the "id" parameter which was originally returned by
- // export. ° If the string representation of "id" does not obey the
+ // export. If the string representation of "id" does not obey the
// rules for object identifiers, then an IllegalOfferId exception is
- // raised. ° If the "id" is legal but there is no offer within the
+ // raised. If the "id" is legal but there is no offer within the
// trader with that "id," then an UnknownOfferId exception is
- // raised. ° If the "id" identifies a proxy offer rather than an
+ // raised. If the "id" identifies a proxy offer rather than an
// ordinary offer, then a ProxyOfferId exception is raised.
// END SPEC
@@ -373,30 +373,30 @@ public:
// The modify operation is used to change the description of a
// service as held within a service offer. The object reference and
// the service type associated with the offer cannot be
- // changed. This operation may: ° add new (non-mandatory) properties
- // to describe an offer, ° change the values of some existing (not
- // readonly) properties, or ° delete existing (neither mandatory nor
+ // changed. This operation may: add new (non-mandatory) properties
+ // to describe an offer, change the values of some existing (not
+ // readonly) properties, or delete existing (neither mandatory nor
// readonly) properties.
// The modify operation either succeeds completely or it fails
// completely. The offer is identified by the "id" parameter which
- // was originally returned by export. ° If the string representation
+ // was originally returned by export. If the string representation
// of "id" does not obey the rules for offer identifiers, then an
- // IllegalOfferId exception is raised. ° If the "id" is legal but
+ // IllegalOfferId exception is raised. If the "id" is legal but
// there is no offer within the trader with that "id," then an
- // UnknownOfferId exception is raised. ° If the "id" identifies a
+ // UnknownOfferId exception is raised. If the "id" identifies a
// proxy offer rather than an ordinary offer, then a ProxyOfferId
// exception is raised.
// The "del_list" parameter gives the names of the properties that
// are no longer to be recorded for the identified offer. Future
- // query and describe operations will not see these properties. ° If
+ // query and describe operations will not see these properties. If
// any of the names within the "del_list" do not obey the rules for
// PropertyName's, then an IllegalPropertyName exception is
- // raised. ° If a "name" is legal but there is no property for the
+ // raised. If a "name" is legal but there is no property for the
// offer with that "name," then an UnknownPropertyName exception is
- // raised. ° If the list includes a property that has a mandatory
- // mode, then the MandatoryProperty exception is raised. ° If the
+ // raised. If the list includes a property that has a mandatory
+ // mode, then the MandatoryProperty exception is raised. If the
// same property name is included two or more times in this
// parameter, the DuplicatePropertyName exception is raised.
@@ -404,17 +404,17 @@ public:
// properties to be changed. If the property is not in the offer,
// then the modify operation adds it. The modified (or added)
// property values are returned in future query and describe
- // operations in place of the original values. ° If any of the names
+ // operations in place of the original values. If any of the names
// within the "modify_list" do not obey the rules for
// PropertyName's, then an IllegalPropertyName exception is
- // raised. ° If the list includes a property that has a readonly
+ // raised. If the list includes a property that has a readonly
// mode, then the ReadonlyProperty exception is raised unless that
// readonly property is not currently recorded for the offer. The
// ReadonlyDynamicProperty exception is raised if an attempt is made
- // to assign a dynamic property value to a readonly property. ° If
+ // to assign a dynamic property value to a readonly property. If
// the value of any modified property is of a type that is not the
// same as the type expected, then the PropertyTypeMismatch
- // exception is raised. ° If two or more properties with the same
+ // exception is raised. If two or more properties with the same
// property name are included in this argument, the
// DuplicatePropertyName exception is raised.
@@ -434,16 +434,16 @@ public:
// The "type" parameter conveys the required service type. Each
// offer of the specified type will have the constraint expression
// applied to it. If it matches the constraint expression, then the
- // offer will be withdrawn.° If "type" does not obey the rules for
- // service types, then an IllegalServiceType exception is raised. °
+ // offer will be withdrawn. If "type" does not obey the rules for
+ // service types, then an IllegalServiceType exception is raised.
// If the "type" is correct syntactically but is not recognized as a
// service type by the trader, then an UnknownServiceType exception
// is raised.
// The constraint "constr" is the means by which the client
// restricts the set of offers to those that are intended for
- // withdrawal. ° If "constr" does not obey the syntax rules for a
- // constraint then an IllegalConstraint exception is raised. ° If
+ // withdrawal. If "constr" does not obey the syntax rules for a
+ // constraint then an IllegalConstraint exception is raised. If
// the constraint fails to match with any offer of the specified
// service type, then a NoMatchingOffers exception is raised.
// END SPEC
@@ -456,13 +456,13 @@ public:
// another trader. In particular, it is used when exporting to a
// trader that is known by a name rather than by an object
// reference. The client provides the name, which will be a sequence
- // of name components. ° If the content of the parameter cannot
+ // of name components. If the content of the parameter cannot
// yield legal syntax for the first component, then the
// IllegalTraderName exception is raised. Otherwise, the first name
- // component is compared against the name held in each link. ° If no
+ // component is compared against the name held in each link. If no
// match is found, or the trader does not support links, the
// UnknownTraderName exception is raised. Otherwise, the trader
- // obtains the register_if held as part of the matched link. ° If
+ // obtains the register_if held as part of the matched link. If
// the Register interface is not nil, then the trader binds to the
// Register interface and invokes resolve but passes the TraderName
// with the first component removed; if it is nil, then the
@@ -587,10 +587,10 @@ public:
// offers are not returned via this operation. If the trader does
// not support the Register interface, the NotImplemented exception
// is raised. The returned identifiers are passed back in one of two
- // ways (or a combination of both). ° The "ids" return result
+ // ways (or a combination of both). The "ids" return result
// conveys a list of offer identifiers and the "id_itr" is a
// reference to an interface at which additional offer identities
- // can be obtained. ° The "how_many" parameter states how many
+ // can be obtained. The "how_many" parameter states how many
// identifiers are to be returned via the "ids" result; any
// remaining are available via the iterator interface. If the
// "how_many" exceeds the number of offers held in the trader, then
@@ -705,9 +705,9 @@ public:
// IllegalLinkName is raised. An UnknownLinkName exception is raised
// if the named link is not found in the trader.
- // The operation returns a LinkInfo structure comprising: ° the
- // Lookup interface of the target trading service, ° the Register
- // interface of the target trading service, and ° the default, as
+ // The operation returns a LinkInfo structure comprising: the
+ // Lookup interface of the target trading service, the Register
+ // interface of the target trading service, and the default, as
// well as the limiting follow behavior of the named link.
// If the target service does not support the Register interface,
diff --git a/TAO/orbsvcs/orbsvcs/Trader/Trader_Utils.h b/TAO/orbsvcs/orbsvcs/Trader/Trader_Utils.h
index 03fae65eb2f..6a539435f81 100644
--- a/TAO/orbsvcs/orbsvcs/Trader/Trader_Utils.h
+++ b/TAO/orbsvcs/orbsvcs/Trader/Trader_Utils.h
@@ -261,14 +261,14 @@ public:
// implementation of the trader. However, some names are
// standardized where they effect the interpretation of other
// parameters or where they may impact linking and federation of
- // traders. ° If a policy name in this parameter does not obey the
+ // traders. If a policy name in this parameter does not obey the
// syntactic rules for legal PolicyName's, then an IllegalPolicyName
- // exception is raised. ° If the type of the value associated with a
+ // exception is raised. If the type of the value associated with a
// policy differs from that specified in this specification, then a
- // PolicyTypeMismatch exception is raised. ° If subsequent
+ // PolicyTypeMismatch exception is raised. If subsequent
// processing of a PolicyValue yields any errors (e.g., the
// starting_trader policy value is malformed), then an
- // InvalidPolicyValue exception is raised. ° If the same policy name
+ // InvalidPolicyValue exception is raised. If the same policy name
// is included two or more times in this parameter, then the
// DuplicatePolicyName exception is raised.
// END SPEC
diff --git a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl
index 4b43bc84400..e7c0f004f10 100755
--- a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl
+++ b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl
@@ -36,6 +36,7 @@ $client->DeleteFile($iorbase);
$client_flags = "";
$server_flags = "";
$quiet_flag = " -q ";
+$shmiop = 1;
###############################################################################
# Parse the arguments
@@ -48,6 +49,7 @@ for ($i = 0; $i <= $#ARGV; $i++) {
print "-n num -- client uses <num> iterations\n";
print "-debug -- sets the debug flag for both client and "
. "server\n";
+ print "-noshmiop -- don't run SHMIOP test\n";
exit;
}
elsif ($ARGV[$i] eq "-debug") {
@@ -61,6 +63,9 @@ for ($i = 0; $i <= $#ARGV; $i++) {
elsif ($ARGV[$i] eq "-verbose") {
$quiet_flag = "";
}
+ elsif ($ARGV[$i] eq "-noshmiop") {
+ $shmiop = 0;
+ }
else {
print STDERR "ERROR: Unknown Option: ".$ARGV[$i]."\n";
}
@@ -142,12 +147,14 @@ if ($OSNAME ne "MSWin32" && $OSNAME ne "VMS") {
run_test_helper ();
}
-print STDERR "============================================================\n";
-print STDERR "Running IDL_Cubit with the SHMIOP protocol.\n\n";
+if ($shmiop) {
+ print STDERR "============================================================\n";
+ print STDERR "Running IDL_Cubit with the SHMIOP protocol.\n\n";
-$SV->Arguments ("$server_stdarg -ORBEndpoint shmiop:// -ORBSvcconf $server_shmiop_conf ");
+ $SV->Arguments ("$server_stdarg -ORBEndpoint shmiop:// -ORBSvcconf $server_shmiop_conf ");
-run_test_helper ();
+ run_test_helper ();
+}
# Clean up SHMIOP files
PerlACE::check_n_cleanup_files ("server_shmiop_*");
diff --git a/TAO/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp b/TAO/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp
index b42e3f30173..37cdca63018 100644
--- a/TAO/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp
+++ b/TAO/tao/PortableServer/RequestProcessingStrategyAOMOnly.cpp
@@ -105,7 +105,14 @@ namespace TAO
Non_Servant_Upcall non_servant_upcall (*this->poa_);
ACE_UNUSED_ARG (non_servant_upcall);
- servant->_remove_ref ();
+ try
+ {
+ servant->_remove_ref ();
+ }
+ catch (...)
+ {
+ // Ignore exceptions from servant cleanup.
+ }
}
// This operation causes the association of the Object Id specified
diff --git a/TAO/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp b/TAO/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp
index 331fa1eb987..5d32202278f 100644
--- a/TAO/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp
+++ b/TAO/tao/PortableServer/RequestProcessingStrategyDefaultServant.cpp
@@ -185,7 +185,14 @@ namespace TAO
Non_Servant_Upcall non_servant_upcall (*this->poa_);
ACE_UNUSED_ARG (non_servant_upcall);
- servant->_remove_ref ();
+ try
+ {
+ servant->_remove_ref ();
+ }
+ catch (...)
+ {
+ // Ignore exceptions from servant cleanup.
+ }
}
// This operation causes the association of the Object Id specified
diff --git a/TAO/tao/PortableServer/RequestProcessingStrategyServantActivator.cpp b/TAO/tao/PortableServer/RequestProcessingStrategyServantActivator.cpp
index a9ba9d5033b..1f72006203e 100644
--- a/TAO/tao/PortableServer/RequestProcessingStrategyServantActivator.cpp
+++ b/TAO/tao/PortableServer/RequestProcessingStrategyServantActivator.cpp
@@ -279,7 +279,14 @@ namespace TAO
Non_Servant_Upcall non_servant_upcall (*this->poa_);
ACE_UNUSED_ARG (non_servant_upcall);
- servant->_remove_ref ();
+ try
+ {
+ servant->_remove_ref ();
+ }
+ catch (...)
+ {
+ // Ignore exceptions from servant cleanup.
+ }
}
}
diff --git a/TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp b/TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp
index 32f186c9de2..e1beec91ede 100644
--- a/TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp
+++ b/TAO/tao/PortableServer/RequestProcessingStrategyServantLocator.cpp
@@ -172,7 +172,14 @@ namespace TAO
Non_Servant_Upcall non_servant_upcall (*this->poa_);
ACE_UNUSED_ARG (non_servant_upcall);
- servant->_remove_ref ();
+ try
+ {
+ servant->_remove_ref ();
+ }
+ catch (...)
+ {
+ // Ignore exceptions from servant cleanup.
+ }
}
// This operation causes the association of the Object Id specified
diff --git a/TAO/tests/AMH_Exceptions/server.cpp b/TAO/tests/AMH_Exceptions/server.cpp
index 276beac855d..f8132bca70e 100644
--- a/TAO/tests/AMH_Exceptions/server.cpp
+++ b/TAO/tests/AMH_Exceptions/server.cpp
@@ -24,7 +24,7 @@ public:
//FUZZ: disable check_for_lack_ACE_OS
protected:
- CORBA::ORB_ptr orb_;
+ CORBA::ORB_var orb_;
};
diff --git a/TAO/tests/Bug_1361_Regression/Server_Thread_Pool.cpp b/TAO/tests/Bug_1361_Regression/Server_Thread_Pool.cpp
index 565d5ebc65a..083131a18b4 100644
--- a/TAO/tests/Bug_1361_Regression/Server_Thread_Pool.cpp
+++ b/TAO/tests/Bug_1361_Regression/Server_Thread_Pool.cpp
@@ -45,7 +45,7 @@ Thread_Pool::shutdown (void)
i + 1));
ACE_Message_Block *mb1;
ACE_NEW_RETURN (mb1,
- ACE_Message_Block ((char*)0),
+ ACE_Message_Block ((char*) Test::Echo::_nil ()),
-1);
mb1->length (0);
@@ -125,8 +125,7 @@ Thread_Pool::svc (void)
Test::Echo_var echo = (Test::Echo_ptr)mb->base();
- // Echo_var is responsible for deallocating this.
- // mb->release ();
+ mb->release ();
if (CORBA::is_nil(echo.in()))
{
diff --git a/TAO/tests/Bug_1476_Regression/Sender_i.h b/TAO/tests/Bug_1476_Regression/Sender_i.h
index d600e7a32e0..773e07812e1 100644
--- a/TAO/tests/Bug_1476_Regression/Sender_i.h
+++ b/TAO/tests/Bug_1476_Regression/Sender_i.h
@@ -42,7 +42,7 @@ public:
private:
/// Our local ORB ptr
- CORBA::ORB_ptr orb_;
+ CORBA::ORB_var orb_;
/// Number of active objects who are trying to connect
CORBA::ULong active_objects_;
diff --git a/TAO/tests/Bug_1476_Test/client.cpp b/TAO/tests/Bug_1476_Test/client.cpp
index da751521269..f803832567c 100644
--- a/TAO/tests/Bug_1476_Test/client.cpp
+++ b/TAO/tests/Bug_1476_Test/client.cpp
@@ -94,61 +94,68 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
CORBA::Object_var tmp = orb->string_to_object(ior);
- if (CORBA::is_nil (tmp.in ())) {
- ACE_ERROR_RETURN ((LM_ERROR, "Invalid IOR.\n")
- ,1);
- }
+ if (CORBA::is_nil (tmp.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "Invalid IOR.\n")
+ ,1);
+ }
{
- // Set the Synch Scopes
+ // Set the Synch Scopes
- CORBA::Any scope_as_any;
+ CORBA::Any scope_as_any;
- if (synch_none == true)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) - Applying SYNC_NONE.\n"));
- scope_as_any <<= Messaging::SYNC_NONE;
- }
- else if (synch_delayed == true)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) - Applying SYNC_DELAYED_BUFFERING.\n"));
- scope_as_any <<= TAO::SYNC_DELAYED_BUFFERING;
- }
+ if (synch_none == true)
+ {
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t) - Applying SYNC_NONE.\n"));
+ scope_as_any <<= Messaging::SYNC_NONE;
+ }
+ else if (synch_delayed == true)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) - Applying SYNC_DELAYED_BUFFERING.\n"));
+ scope_as_any <<= TAO::SYNC_DELAYED_BUFFERING;
+ }
- CORBA::PolicyList policies (1);
- policies.length (1);
- policies[0] =
- orb->create_policy (Messaging::SYNC_SCOPE_POLICY_TYPE,
- scope_as_any);
+ CORBA::PolicyList policies (1);
+ policies.length (1);
+ policies[0] =
+ orb->create_policy (Messaging::SYNC_SCOPE_POLICY_TYPE,
+ scope_as_any);
- if (level_thread == true)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) - Applying Synch Scope at thread level.\n"));
+ if (level_thread == true)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) - Applying Synch Scope at thread level.\n"));
- CORBA::Object_var object =
- orb->resolve_initial_references ("PolicyCurrent");
- CORBA::PolicyCurrent_var policy_current =
- CORBA::PolicyCurrent::_narrow (object.in ());
+ CORBA::Object_var object =
+ orb->resolve_initial_references ("PolicyCurrent");
+ CORBA::PolicyCurrent_var policy_current =
+ CORBA::PolicyCurrent::_narrow (object.in ());
- policy_current->set_policy_overrides (policies, CORBA::ADD_OVERRIDE);
- }
- else if (level_orb == true)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) - Applying Synch Scope at orb level.\n"));
+ policy_current->set_policy_overrides (policies,
+ CORBA::ADD_OVERRIDE);
+ }
+ else if (level_orb == true)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) - Applying Synch Scope at orb level.\n"));
- CORBA::Object_var obj =
- orb->resolve_initial_references("ORBPolicyManager");
- CORBA::PolicyManager_var policy_manager =
- CORBA::PolicyManager::_narrow(obj.in());
+ CORBA::Object_var obj =
+ orb->resolve_initial_references("ORBPolicyManager");
+ CORBA::PolicyManager_var policy_manager =
+ CORBA::PolicyManager::_narrow(obj.in());
- policy_manager->set_policy_overrides (policies, CORBA::ADD_OVERRIDE);
- }
- else if (level_obj == true)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) - Applying Synch Scope at Object level.\n"));
+ policy_manager->set_policy_overrides (policies,
+ CORBA::ADD_OVERRIDE);
+ }
+ else if (level_obj == true)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) - Applying Synch Scope at Object level.\n"));
- tmp = tmp->_set_policy_overrides (policies, CORBA::SET_OVERRIDE);
- }
+ tmp = tmp->_set_policy_overrides (policies, CORBA::SET_OVERRIDE);
+ }
policies[0]->destroy ();
}
@@ -156,12 +163,13 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
Test::Hello_var hello =
Test::Hello::_narrow(tmp.in ());
- if (CORBA::is_nil (hello.in ())) {
- ACE_ERROR_RETURN ((LM_ERROR,
- "Nil Test::Hello reference <%s>\n",
- ior),
- 1);
- }
+ if (CORBA::is_nil (hello.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Nil Test::Hello reference <%s>\n",
+ ior),
+ 1);
+ }
// If a blocking connection is initiated in the next step
// the test will get an exception indicating test failure.
@@ -172,18 +180,21 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
TAO::Transport_Cache_Manager &tcm =
hello->orb_core ()->lane_resources ().transport_cache ();
- TAO_Transport *transport = 0;
- TAO_Base_Transport_Property desc (hello->_stubobj ()->profile_in_use()->endpoint ());
+ TAO_Base_Transport_Property desc (hello->_stubobj ()->profile_in_use ()->endpoint ());
- if (tcm.current_size() == 0) {
- ACE_ERROR_RETURN ((LM_ERROR,
- "The Transport Cache shouldn't be empty here.\n"),
- 1);
- }
+ if (tcm.current_size() == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "The Transport Cache shouldn't be empty here.\n"),
+ 1);
+ }
size_t busy_count = 0;
+ TAO_Transport *transport = 0;
TAO::Transport_Cache_Manager::Find_Result find_result =
tcm.find_transport (&desc, transport, busy_count);
+ // We don't need this transport any more. Release the ownership.
+ transport->remove_reference ();
switch (find_result){
case TAO::Transport_Cache_Manager::CACHE_FOUND_NONE:
@@ -219,7 +230,6 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
}
}
-
orb->destroy ();
}
catch (const CORBA::Exception &ex)
diff --git a/TAO/tests/Codec/client.cpp b/TAO/tests/Codec/client.cpp
index c6e569609d7..a884ba63952 100644
--- a/TAO/tests/Codec/client.cpp
+++ b/TAO/tests/Codec/client.cpp
@@ -78,7 +78,7 @@ test_codec (IOP::Codec_ptr codec)
const CORBA::Long B = -3427;
const CORBA::ULongLong C = ACE_UINT64_LITERAL (2001);
const CORBA::Char D[] = "I'm Batman.";
- const CORBA::WChar* E = gen_wstring (25);
+ CORBA::WChar* E = gen_wstring (25);
// Create the structure to be encoded.
Foo::Bar value;
@@ -88,6 +88,8 @@ test_codec (IOP::Codec_ptr codec)
value.D = CORBA::string_dup (D);
value.E = CORBA::wstring_dup (E);
+ CORBA::wstring_free (E);
+
CORBA::Any data;
data <<= value;
diff --git a/TAO/tests/DII_AMI_Forward/server_interceptor.cpp b/TAO/tests/DII_AMI_Forward/server_interceptor.cpp
index 4ac94e07c1a..82d60fb0298 100644
--- a/TAO/tests/DII_AMI_Forward/server_interceptor.cpp
+++ b/TAO/tests/DII_AMI_Forward/server_interceptor.cpp
@@ -8,7 +8,9 @@
#include "ace/Thread.h"
ForwardTest_Request_Interceptor::ForwardTest_Request_Interceptor (void)
- : myname_ ("ForwardTest_Interceptor")
+ : myname_ ("ForwardTest_Interceptor"),
+ forward_location_ (CORBA::Object::_nil ()),
+ forward_location_done_ (false)
{
}
diff --git a/TAO/tests/MProfile_Connection_Timeout/client.cpp b/TAO/tests/MProfile_Connection_Timeout/client.cpp
index d3f3fac6c8f..7c33f5ac8fd 100644
--- a/TAO/tests/MProfile_Connection_Timeout/client.cpp
+++ b/TAO/tests/MProfile_Connection_Timeout/client.cpp
@@ -74,10 +74,10 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
orb->string_to_object (name);
// Get an object reference for the ORBs IORManipultion object!
- CORBA::Object_ptr IORM =
+ CORBA::Object_var IORM =
orb->resolve_initial_references (TAO_OBJID_IORMANIPULATION, 0);
- TAO_IOP::TAO_IOR_Manipulation_ptr iorm =
+ TAO_IOP::TAO_IOR_Manipulation_var iorm =
TAO_IOP::TAO_IOR_Manipulation::_narrow (IORM);
TAO_IOP::TAO_IOR_Manipulation::IORList iors (2);
diff --git a/TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.cpp b/TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.cpp
index 8a5a2e8bc88..98e7790d2ee 100644
--- a/TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.cpp
+++ b/TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.cpp
@@ -57,3 +57,13 @@ Object_A_i::finish (void)
this->finish_two_way_call_ = 1;
}
+
+void
+Object_A_i::shutdown (void)
+{
+ int argc = 0;
+ ACE_TCHAR **argv = 0;
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ orb->shutdown ();
+}
diff --git a/TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.h b/TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.h
index 567412b6d83..6373eb3e5ff 100644
--- a/TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.h
+++ b/TAO/tests/NestedUpcall/Triangle_Test/Object_A_i.h
@@ -38,6 +38,8 @@ public:
virtual void finish (void);
+ virtual void shutdown (void);
+
unsigned long finish_two_way_call_;
};
diff --git a/TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.cpp b/TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.cpp
index 4506293e4eb..6005f4947fb 100644
--- a/TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.cpp
+++ b/TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.cpp
@@ -58,3 +58,13 @@ Object_B_i::foo (Object_A_ptr theObject_A_ptr)
}
}
+
+void
+Object_B_i::shutdown (void)
+{
+ int argc = 0;
+ ACE_TCHAR **argv = 0;
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ orb->shutdown ();
+}
diff --git a/TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.h b/TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.h
index 2eed4c74f4b..ff31c25e3c3 100644
--- a/TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.h
+++ b/TAO/tests/NestedUpcall/Triangle_Test/Object_B_i.h
@@ -35,6 +35,8 @@ public:
// Destructor.
virtual void foo(Object_A_ptr theObject_A_ptr);
+
+ virtual void shutdown (void);
};
#endif /* OBJECT_B_IMPL_H */
diff --git a/TAO/tests/NestedUpcall/Triangle_Test/Triangle_Test.idl b/TAO/tests/NestedUpcall/Triangle_Test/Triangle_Test.idl
index a99b5829bcc..e3704bec89b 100644
--- a/TAO/tests/NestedUpcall/Triangle_Test/Triangle_Test.idl
+++ b/TAO/tests/NestedUpcall/Triangle_Test/Triangle_Test.idl
@@ -29,10 +29,14 @@ interface Object_A {
oneway void finish ();
+ oneway void shutdown ();
+
};
interface Object_B {
void foo (in Object_A theObject_A);
+ oneway void shutdown ();
+
};
diff --git a/TAO/tests/NestedUpcall/Triangle_Test/initiator.cpp b/TAO/tests/NestedUpcall/Triangle_Test/initiator.cpp
index 92500938f11..6f1a67dde02 100644
--- a/TAO/tests/NestedUpcall/Triangle_Test/initiator.cpp
+++ b/TAO/tests/NestedUpcall/Triangle_Test/initiator.cpp
@@ -141,10 +141,11 @@ Initiator_Server::init (int argc,
try
{
+ CORBA::ORB_var orb = this->orb_manager_.orb();
// Get Object A
CORBA::Object_var object_A_obj_var =
- this->orb_manager_.orb()->string_to_object (this->object_A_key_);
+ orb->string_to_object (this->object_A_key_);
this->object_A_var_ =
Object_A::_narrow (object_A_obj_var.in());
@@ -166,7 +167,7 @@ Initiator_Server::init (int argc,
// Get Object B
CORBA::Object_var object_B_obj_var =
- this->orb_manager_.orb()->string_to_object (this->object_B_key_);
+ orb->string_to_object (this->object_B_key_);
this->object_B_var_ =
Object_B::_narrow (object_B_obj_var.in());
@@ -253,6 +254,9 @@ Initiator_Server::~Initiator_Server (void)
if (this->object_B_key_ != 0)
ACE_Allocator::instance ()->free (this->object_B_key_);
+ this->object_A_var_->shutdown ();
+ this->object_B_var_->shutdown ();
+
try
{
this->orb_manager_.deactivate (this->str_.in ());
diff --git a/TAO/tests/NestedUpcall/Triangle_Test/run_test.pl b/TAO/tests/NestedUpcall/Triangle_Test/run_test.pl
index d84559551a2..2e9c16d2cba 100755
--- a/TAO/tests/NestedUpcall/Triangle_Test/run_test.pl
+++ b/TAO/tests/NestedUpcall/Triangle_Test/run_test.pl
@@ -114,14 +114,14 @@ if ($client_status != 0) {
$status = 1;
}
-$server_status = $SV1->TerminateWaitKill ($server_a->ProcessStopWaitInterval());
+$server_status = $SV1->WaitKill ($server_a->ProcessStopWaitInterval());
if ($server_status != 0) {
print STDERR "ERROR: server returned $server_status\n";
$status = 1;
}
-$server_status = $SV2->TerminateWaitKill ($server_b->ProcessStopWaitInterval());
+$server_status = $SV2->WaitKill ($server_b->ProcessStopWaitInterval());
if ($server_status != 0) {
print STDERR "ERROR: server returned $server_status\n";
diff --git a/TAO/tests/ORB_shutdown/Foo_Bar.cpp b/TAO/tests/ORB_shutdown/Foo_Bar.cpp
index e155bf1ea1f..a55aa17b7e1 100644
--- a/TAO/tests/ORB_shutdown/Foo_Bar.cpp
+++ b/TAO/tests/ORB_shutdown/Foo_Bar.cpp
@@ -12,5 +12,12 @@ Foo_Bar::~Foo_Bar (void)
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) Shutting down the ORB again\n"));
- this->orb_->shutdown (1);
+ try
+ {
+ this->orb_->shutdown (1);
+ }
+ catch (...)
+ {
+ // Don't allow exceptions to leave the destructor.
+ }
}
diff --git a/TAO/tests/Oneways_Invoking_Twoways/Sender_i.h b/TAO/tests/Oneways_Invoking_Twoways/Sender_i.h
index ab267b02277..e566594f46e 100644
--- a/TAO/tests/Oneways_Invoking_Twoways/Sender_i.h
+++ b/TAO/tests/Oneways_Invoking_Twoways/Sender_i.h
@@ -43,7 +43,7 @@ public:
private:
/// Our local ORB ptr
- CORBA::ORB_ptr orb_;
+ CORBA::ORB_var orb_;
/// Number of invocations to be made on the receiver
CORBA::ULong number_;