summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TAO/ChangeLog5
-rw-r--r--TAO/tao/PortableServer/Active_Object_Map.cpp99
2 files changed, 104 insertions, 0 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 7a1294382c5..a21cf516a56 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,8 @@
+Mon Aug 23 09:38:41 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tao/PortableServer/Active_Object_Map.cpp:
+ Implements patches from Bugzilla 3655 (with changes).
+
Mon Aug 23 09:31:41 UTC 2010 Martin Corino <mcorino@remedy.nl>
* tao/Transport_Cache_Manager_T.inl:
diff --git a/TAO/tao/PortableServer/Active_Object_Map.cpp b/TAO/tao/PortableServer/Active_Object_Map.cpp
index b6d7ef67b11..d262b6ac40a 100644
--- a/TAO/tao/PortableServer/Active_Object_Map.cpp
+++ b/TAO/tao/PortableServer/Active_Object_Map.cpp
@@ -11,6 +11,8 @@
#include "ace/Auto_Ptr.h"
#include "ace/CORBA_macros.h"
+#include "TAO/tao/debug.h"
+#include "PortableServer_Functions.h"
ACE_RCSID(PortableServer,
Active_Object_Map,
@@ -21,6 +23,21 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
/* static */
size_t TAO_Active_Object_Map::system_id_size_ = 0;
+static void
+hexstring (ACE_CString& hexstr, const char* s, size_t l)
+{
+ char buf[3] = {0};
+
+ hexstr.fast_resize (2 + l * 2);
+ hexstr.append ("0x", 2);
+ while (--l)
+ {
+ ACE_OS::sprintf (buf, "%02x", (unsigned int)(unsigned char)*s);
+ hexstr.append (buf, 2);
+ ++s;
+ }
+}
+
void
TAO_Active_Object_Map::set_system_id_size (
const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters)
@@ -492,6 +509,19 @@ TAO_Unique_Id_Strategy::bind_using_user_id (
}
}
+ if (result == 0 && TAO_debug_level > 7)
+ {
+ CORBA::String_var idstr (PortableServer::ObjectId_to_string (user_id));
+ ACE_CString hex_idstr;
+ hexstring (hex_idstr, idstr.in (), user_id.length ());
+
+ ACE_DEBUG ((LM_DEBUG,
+ "TAO (%P|%t) - TAO_Unique_Id_Strategy::bind_using_user_id: type=%C, id=%C\n",
+ servant ? servant->_repository_id () : "(null)",
+ hex_idstr.c_str()
+ ));
+ }
+
return result;
}
@@ -504,6 +534,19 @@ TAO_Unique_Id_Strategy::unbind_using_user_id (
entry);
if (result == 0)
{
+ if (TAO_debug_level > 7)
+ {
+ CORBA::String_var idstr (
+ PortableServer::ObjectId_to_string (entry->user_id_));
+ ACE_CString hex_idstr;
+ hexstring (hex_idstr, idstr.in (), entry->user_id_.length ());
+
+ ACE_DEBUG ((LM_DEBUG,
+ "TAO (%P|%t) - TAO_Unique_Id_Strategy::unbind_using_user_id: id=%C\n",
+ hex_idstr.c_str()
+ ));
+ }
+
if (entry->servant_ != 0)
{
result =
@@ -658,6 +701,19 @@ TAO_Multiple_Id_Strategy::bind_using_user_id (
}
}
+ if (result == 0 && TAO_debug_level > 7)
+ {
+ CORBA::String_var idstr (PortableServer::ObjectId_to_string (user_id));
+ ACE_CString hex_idstr;
+ hexstring (hex_idstr, idstr.in (), user_id.length ());
+
+ ACE_DEBUG ((LM_DEBUG,
+ "TAO (%P|%t) - TAO_Multiple_Id_Strategy::bind_using_user_id: type=%C, id=%C\n",
+ servant != 0 ? servant->_repository_id () : "(null)",
+ hex_idstr.c_str()
+ ));
+ }
+
return result;
}
@@ -670,6 +726,19 @@ TAO_Multiple_Id_Strategy::unbind_using_user_id (
entry);
if (result == 0)
{
+ if (TAO_debug_level > 7)
+ {
+ CORBA::String_var idstr (
+ PortableServer::ObjectId_to_string (entry->user_id_));
+ ACE_CString hex_idstr;
+ hexstring (hex_idstr, idstr.in (), entry->user_id_.length ());
+
+ ACE_DEBUG ((LM_DEBUG,
+ "TAO (%P|%t) - TAO_Multiple_Id_Strategy::unbind_using_user_id: id=%C\n",
+ hex_idstr.c_str()
+ ));
+ }
+
result = this->active_object_map_->id_hint_strategy_->unbind (*entry);
if (result == 0)
@@ -926,6 +995,21 @@ TAO_System_Id_With_Unique_Id_Strategy::bind_using_system_id (
delete entry;
}
+ if (result == 0 && TAO_debug_level > 7)
+ {
+ CORBA::String_var idstr (
+ PortableServer::ObjectId_to_string (entry->user_id_));
+ ACE_CString hex_idstr;
+ hexstring (hex_idstr, idstr.in (), entry->user_id_.length ());
+
+ ACE_DEBUG ((LM_DEBUG,
+ "TAO (%P|%t) - TAO_System_Id_With_Unique_Id_Strategy::"
+ "bind_using_system_id: type=%C, id=%C\n",
+ servant->_repository_id (),
+ hex_idstr.c_str()
+ ));
+ }
+
return result;
}
@@ -965,6 +1049,21 @@ TAO_System_Id_With_Multiple_Id_Strategy::bind_using_system_id (
delete entry;
}
+ if (result == 0 && TAO_debug_level > 7)
+ {
+ CORBA::String_var idstr (
+ PortableServer::ObjectId_to_string (entry->user_id_));
+ ACE_CString hex_idstr;
+ hexstring (hex_idstr, idstr.in (), entry->user_id_.length ());
+
+ ACE_DEBUG ((LM_DEBUG,
+ "TAO (%P|%t) - TAO_System_Id_With_Multiple_Id_Strategy::"
+ "bind_using_system_id: type=%C, id=%C\n",
+ servant->_repository_id (),
+ hex_idstr.c_str()
+ ));
+ }
+
return result;
}
#endif