PEP#:348
authorr.kieninger <r.kieninger>
Wed, 28 Oct 2009 16:33:42 +0000 (16:33 +0000)
committerr.kieninger <r.kieninger>
Wed, 28 Oct 2009 16:33:42 +0000 (16:33 +0000)
TITLE: SCMO CMPI Implementation

DESCRIPTION: Fixing AutoPthreadSecurity when working with CIMOMHandleRep directly

src/Pegasus/Provider/CIMOMHandle.cpp
src/Pegasus/Provider/ClientCIMOMHandleRep.cpp
src/Pegasus/Provider/InternalCIMOMHandleRep.cpp

index d37722aecb12ca83fda44c89853b4858c113061a..fec3693a8dd8126088b43765777ee42c1ea15faf 100644 (file)
@@ -32,7 +32,6 @@
 
 #include <Pegasus/Common/Constants.h>
 #include <Pegasus/Common/MessageQueue.h>
-#include <Pegasus/ProviderManager2/AutoPThreadSecurity.h>
 #include "CIMOMHandleRep.h"
 #include "InternalCIMOMHandleRep.h"
 #include "ClientCIMOMHandleRep.h"
@@ -89,7 +88,6 @@ CIMClass CIMOMHandle::getClass(
     Boolean includeClassOrigin,
     const CIMPropertyList& propertyList)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->getClass(
         context,
         nameSpace,
@@ -109,7 +107,6 @@ Array<CIMClass> CIMOMHandle::enumerateClasses(
     Boolean includeQualifiers,
     Boolean includeClassOrigin)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->enumerateClasses(
         context,
         nameSpace,
@@ -126,7 +123,6 @@ Array<CIMName> CIMOMHandle::enumerateClassNames(
     const CIMName& className,
     Boolean deepInheritance)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->enumerateClassNames(
         context,
         nameSpace,
@@ -139,7 +135,6 @@ void CIMOMHandle::createClass(
     const CIMNamespaceName& nameSpace,
     const CIMClass& newClass)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     _rep->createClass(
         context,
         nameSpace,
@@ -151,7 +146,6 @@ void CIMOMHandle::modifyClass(
     const CIMNamespaceName& nameSpace,
     const CIMClass& modifiedClass)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     _rep->modifyClass(
         context,
         nameSpace,
@@ -163,7 +157,6 @@ void CIMOMHandle::deleteClass(
     const CIMNamespaceName& nameSpace,
     const CIMName& className)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     _rep->deleteClass(
         context,
         nameSpace,
@@ -179,7 +172,6 @@ CIMInstance CIMOMHandle::getInstance(
     Boolean includeClassOrigin,
     const CIMPropertyList& propertyList)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->getInstance(
         context,
         nameSpace,
@@ -199,7 +191,6 @@ Array<CIMInstance> CIMOMHandle::enumerateInstances(
     Boolean includeClassOrigin,
     const CIMPropertyList& propertyList)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->enumerateInstances(
         context,
         nameSpace,
@@ -215,7 +206,6 @@ Array<CIMObjectPath> CIMOMHandle::enumerateInstanceNames(
     const CIMNamespaceName& nameSpace,
     const CIMName& className)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->enumerateInstanceNames(
         context,
         nameSpace,
@@ -227,7 +217,6 @@ CIMObjectPath CIMOMHandle::createInstance(
     const CIMNamespaceName& nameSpace,
     const CIMInstance& newInstance)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->createInstance(
         context,
         nameSpace,
@@ -241,7 +230,6 @@ void CIMOMHandle::modifyInstance(
     Boolean includeQualifiers,
     const CIMPropertyList& propertyList)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     _rep->modifyInstance(
         context,
         nameSpace,
@@ -255,7 +243,6 @@ void CIMOMHandle::deleteInstance(
     const CIMNamespaceName& nameSpace,
     const CIMObjectPath& instanceName)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     _rep->deleteInstance(
         context,
         nameSpace,
@@ -268,7 +255,6 @@ Array<CIMObject> CIMOMHandle::execQuery(
     const String& queryLanguage,
     const String& query)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->execQuery(
         context,
         nameSpace,
@@ -288,7 +274,6 @@ Array<CIMObject> CIMOMHandle::associators(
     Boolean includeClassOrigin,
     const CIMPropertyList& propertyList)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->associators(
         context,
         nameSpace,
@@ -311,7 +296,6 @@ Array<CIMObjectPath> CIMOMHandle::associatorNames(
     const String& role,
     const String& resultRole)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->associatorNames(
         context,
         nameSpace,
@@ -332,7 +316,6 @@ Array<CIMObject> CIMOMHandle::references(
     Boolean includeClassOrigin,
     const CIMPropertyList& propertyList)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->references(
         context,
         nameSpace,
@@ -351,7 +334,6 @@ Array<CIMObjectPath> CIMOMHandle::referenceNames(
     const CIMName& resultClass,
     const String& role)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->referenceNames(
         context,
         nameSpace,
@@ -366,7 +348,6 @@ CIMValue CIMOMHandle::getProperty(
     const CIMObjectPath& instanceName,
     const CIMName& propertyName)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->getProperty(
         context,
         nameSpace,
@@ -381,7 +362,6 @@ void CIMOMHandle::setProperty(
     const CIMName& propertyName,
     const CIMValue& newValue)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     _rep->setProperty(
         context,
         nameSpace,
@@ -398,7 +378,6 @@ CIMValue CIMOMHandle::invokeMethod(
     const Array<CIMParamValue>& inParameters,
     Array<CIMParamValue>& outParameters)
 {
-    AutoPThreadSecurity revPthreadSec(context, true);
     return _rep->invokeMethod(
         context,
         nameSpace,
index 01e058c2adf01c241f0e0ab406f1bae22f52892a..926f7f37cc05f02e9168281198cfe07e313683bf 100644 (file)
@@ -32,6 +32,7 @@
 #include <Pegasus/Common/Constants.h>
 #include <Pegasus/Common/Thread.h>
 #include <Pegasus/Common/Tracer.h>
+#include <Pegasus/ProviderManager2/AutoPThreadSecurity.h>
 
 #include "ClientCIMOMHandleRep.h"
 
@@ -297,6 +298,7 @@ CIMClass ClientCIMOMHandleRep::getClass(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::getClass");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -322,6 +324,7 @@ Array<CIMClass> ClientCIMOMHandleRep::enumerateClasses(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::enumerateClasses");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -344,6 +347,7 @@ Array<CIMName> ClientCIMOMHandleRep::enumerateClassNames(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::enumerateClassNames");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -361,6 +365,7 @@ void ClientCIMOMHandleRep::createClass(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::createClass");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -378,6 +383,7 @@ void ClientCIMOMHandleRep::modifyClass(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::modifyClass");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -396,6 +402,7 @@ void ClientCIMOMHandleRep::deleteClass(
 
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::deleteClass");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -416,6 +423,7 @@ CIMResponseData ClientCIMOMHandleRep::getInstance(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::getInstance");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -441,6 +449,7 @@ CIMResponseData ClientCIMOMHandleRep::enumerateInstances(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::enumerateInstances");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -463,6 +472,7 @@ CIMResponseData ClientCIMOMHandleRep::enumerateInstanceNames(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::enumerateInstanceNames");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -480,6 +490,7 @@ CIMObjectPath ClientCIMOMHandleRep::createInstance(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::createInstance");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -499,6 +510,7 @@ void ClientCIMOMHandleRep::modifyInstance(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::modifyInstance");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -519,6 +531,7 @@ void ClientCIMOMHandleRep::deleteInstance(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::deleteInstance");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -537,6 +550,7 @@ CIMResponseData ClientCIMOMHandleRep::execQuery(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::execQuery");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -561,6 +575,7 @@ CIMResponseData ClientCIMOMHandleRep::associators(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::associators");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -589,6 +604,7 @@ CIMResponseData ClientCIMOMHandleRep::associatorNames(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::associatorNames");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -614,6 +630,7 @@ CIMResponseData ClientCIMOMHandleRep::references(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::references");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -638,6 +655,7 @@ CIMResponseData ClientCIMOMHandleRep::referenceNames(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "ClientCIMOMHandleRep::referenceNames");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -657,6 +675,7 @@ CIMValue ClientCIMOMHandleRep::getProperty(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::getProperty");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -676,6 +695,7 @@ void ClientCIMOMHandleRep::setProperty(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::setProperty");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
@@ -698,6 +718,7 @@ CIMValue ClientCIMOMHandleRep::invokeMethod(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "ClientCIMOMHandleRep::invokeMethod");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     ClientCIMOMHandleAccessController access(_clientMutex);
     ClientCIMOMHandleSetup setup(_client, context);
 
index 98db0c8cbe74afa016fa3e9f3864ef3f2ad133ef..5045e494bee961921ffafe7e06187d9cb8dfce19 100644 (file)
@@ -38,6 +38,7 @@
 #include <Pegasus/Common/CIMMessage.h>
 #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/AutoPtr.h>
+#include <Pegasus/ProviderManager2/AutoPThreadSecurity.h>
 
 #include "InternalCIMOMHandleRep.h"
 
@@ -355,6 +356,8 @@ CIMClass InternalCIMOMHandleRep::getClass(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::getClass");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     // encode request
     CIMGetClassRequestMessage* request =
         new CIMGetClassRequestMessage(
@@ -425,6 +428,8 @@ Array<CIMClass> InternalCIMOMHandleRep::enumerateClasses(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::enumerateClasses");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMEnumerateClassesRequestMessage* request =
         new CIMEnumerateClassesRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -492,6 +497,8 @@ Array<CIMName> InternalCIMOMHandleRep::enumerateClassNames(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::enumerateClassNames");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMEnumerateClassNamesRequestMessage* request =
         new CIMEnumerateClassNamesRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -554,6 +561,8 @@ void InternalCIMOMHandleRep::createClass(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::createClass");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMCreateClassRequestMessage* request =
         new CIMCreateClassRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -613,6 +622,8 @@ void InternalCIMOMHandleRep::modifyClass(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::modifyClass");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMModifyClassRequestMessage* request =
         new CIMModifyClassRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -672,6 +683,7 @@ void InternalCIMOMHandleRep::deleteClass(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::deleteClass");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     // encode request
     CIMDeleteClassRequestMessage* request =
         new CIMDeleteClassRequestMessage(
@@ -735,6 +747,7 @@ CIMResponseData InternalCIMOMHandleRep::getInstance(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::getInstance");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
     // encode request
     CIMGetInstanceRequestMessage* request =
         new CIMGetInstanceRequestMessage(
@@ -802,6 +815,8 @@ CIMResponseData InternalCIMOMHandleRep::enumerateInstances(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::enumerateInstances");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     // encode request
     CIMEnumerateInstancesRequestMessage* request =
         new CIMEnumerateInstancesRequestMessage(
@@ -867,6 +882,8 @@ CIMResponseData InternalCIMOMHandleRep::enumerateInstanceNames(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::enumerateInstanceNames");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     // encode request
     CIMEnumerateInstanceNamesRequestMessage* request =
         new CIMEnumerateInstanceNamesRequestMessage(
@@ -926,6 +943,8 @@ CIMObjectPath InternalCIMOMHandleRep::createInstance(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::createInstance");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMCreateInstanceRequestMessage* request =
         new CIMCreateInstanceRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -990,6 +1009,8 @@ void InternalCIMOMHandleRep::modifyInstance(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::modifyInstance");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMModifyInstanceRequestMessage* request =
         new CIMModifyInstanceRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1052,6 +1073,8 @@ void InternalCIMOMHandleRep::deleteInstance(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::deleteInstance");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMDeleteInstanceRequestMessage* request =
         new CIMDeleteInstanceRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1112,6 +1135,8 @@ CIMResponseData InternalCIMOMHandleRep::execQuery(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::execQuery");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMExecQueryRequestMessage* request =
         new CIMExecQueryRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1178,6 +1203,8 @@ CIMResponseData InternalCIMOMHandleRep::associators(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::associators");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMAssociatorsRequestMessage* request =
         new CIMAssociatorsRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1248,6 +1275,8 @@ CIMResponseData InternalCIMOMHandleRep::associatorNames(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::associatorNames");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMAssociatorNamesRequestMessage* request =
         new CIMAssociatorNamesRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1315,6 +1344,8 @@ CIMResponseData InternalCIMOMHandleRep::references(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::references");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMReferencesRequestMessage* request =
         new CIMReferencesRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1381,6 +1412,8 @@ CIMResponseData InternalCIMOMHandleRep::referenceNames(
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE,
         "InternalCIMOMHandleRep::referenceNames");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMReferenceNamesRequestMessage* request =
         new CIMReferenceNamesRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1442,6 +1475,8 @@ CIMValue InternalCIMOMHandleRep::getProperty(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::getProperty");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMGetPropertyRequestMessage* request =
         new CIMGetPropertyRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1516,6 +1551,8 @@ void InternalCIMOMHandleRep::setProperty(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::setProperty");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMSetPropertyRequestMessage* request =
         new CIMSetPropertyRequestMessage(
             XmlWriter::getNextMessageId(),
@@ -1580,6 +1617,8 @@ CIMValue InternalCIMOMHandleRep::invokeMethod(
 {
     PEG_METHOD_ENTER(TRC_CIMOM_HANDLE, "InternalCIMOMHandleRep::invokeMethod");
 
+    AutoPThreadSecurity revPthreadSec(context, true);
+
     CIMInvokeMethodRequestMessage* request =
         new CIMInvokeMethodRequestMessage(
             XmlWriter::getNextMessageId(),