(file) Return to JMPIProviderManager.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / JMPI

Diff for /pegasus/src/Pegasus/ProviderManager2/JMPI/JMPIProviderManager.cpp between version 1.46 and 1.59.4.2

version 1.46, 2006/05/09 16:14:26 version 1.59.4.2, 2007/07/07 01:35:43
Line 29 
Line 29 
 // //
 //============================================================================== //==============================================================================
 // //
 // Author:      Adrian Schuur, schuur@de.ibm.com  
 //  
 // Modified By: Seema Gupta (gseema@in.ibm.com) for PEP135  
 //              Josephine Eskaline Joyce, IBM (jojustin@in.ibm.com) for PEP#101  
 //  
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
   // NOCHKSRC
  
 #include "JMPIProviderManager.h" #include "JMPIProviderManager.h"
  
Line 47 
Line 43 
 #include <Pegasus/Common/Logger.h> #include <Pegasus/Common/Logger.h>
 #include <Pegasus/Common/MessageLoader.h> //l10n #include <Pegasus/Common/MessageLoader.h> //l10n
 #include <Pegasus/Common/Constants.h> #include <Pegasus/Common/Constants.h>
   #include <Pegasus/Common/FileSystem.h>
   #include <Pegasus/Common/ArrayInternal.h>
  
 #include <Pegasus/Config/ConfigManager.h> #include <Pegasus/Config/ConfigManager.h>
  
 #include <Pegasus/ProviderManager2/ProviderName.h> #include <Pegasus/ProviderManager2/ProviderName.h>
 #include <Pegasus/ProviderManager2/JMPI/JMPIProvider.h> #include <Pegasus/ProviderManager2/JMPI/JMPIProvider.h>
 #include <Pegasus/ProviderManager2/JMPI/JMPIProviderModule.h> #include <Pegasus/ProviderManager2/JMPI/JMPIProviderModule.h>
 #include <Pegasus/ProviderManager2/ProviderManagerService.h>  
   
 #include <Pegasus/ProviderManager2/CMPI/CMPI_SelectExp.h>  
   
  
 PEGASUS_USING_STD; PEGASUS_USING_STD;
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
Line 163 
Line 157 
    for (int i = 0; i < (int)(sizeof (methodNames)/sizeof (methodNames[0])); i++)    for (int i = 0; i < (int)(sizeof (methodNames)/sizeof (methodNames[0])); i++)
    {    {
       jmethodID id = env->GetMethodID(jc,methodNames[i][1], methodNames[i][2]);       jmethodID id = env->GetMethodID(jc,methodNames[i][1], methodNames[i][2]);
       DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::debugPrintMethodPointers: "<<methodNames[i][0]<<", "<<methodNames[i][1]<<", id = "<<PEGASUS_STD(hex)<<(int)id<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::debugPrintMethodPointers: "<<methodNames[i][0]<<", "<<methodNames[i][1]<<", id = "<<PEGASUS_STD(hex)<<(long)id<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
       env->ExceptionClear();       env->ExceptionClear();
    }    }
  
Line 354 
Line 348 
 JMPIProviderManager::ProvRegistrar JMPIProviderManager::provReg; JMPIProviderManager::ProvRegistrar JMPIProviderManager::provReg;
 Mutex                              JMPIProviderManager::mutexProvReg; Mutex                              JMPIProviderManager::mutexProvReg;
  
 JMPIProviderManager::JMPIProviderManager(Mode m)  JMPIProviderManager::JMPIProviderManager()
 { {
    mode=m;  
    _subscriptionInitComplete = false;    _subscriptionInitComplete = false;
  
 #ifdef PEGASUS_DEBUG #ifdef PEGASUS_DEBUG
Line 526 
Line 519 
 #define CHARS(cstring) (char*)(strlen(cstring)?(const char*)cstring:NULL) #define CHARS(cstring) (char*)(strlen(cstring)?(const char*)cstring:NULL)
  
  
 #define HandlerIntroBase(type,type1,message,request,response,handler,respType) \  #define HandlerIntroBase(type,type1,message,request,response,handler) \
     CIM##type##RequestMessage * request = \     CIM##type##RequestMessage * request = \
         dynamic_cast<CIM##type##RequestMessage *>(const_cast<Message *>(message)); \         dynamic_cast<CIM##type##RequestMessage *>(const_cast<Message *>(message)); \
     PEGASUS_ASSERT(request != 0); \     PEGASUS_ASSERT(request != 0); \
     CIM##type##ResponseMessage * response = \     CIM##type##ResponseMessage * response = \
         new CIM##type##ResponseMessage( \          dynamic_cast<CIM##type##ResponseMessage*>(request->buildResponse()); \
         request->messageId, \  
         CIMException(), \  
         request->queueIds.copyAndPop() \  
         respType \  
     PEGASUS_ASSERT(response != 0); \     PEGASUS_ASSERT(response != 0); \
     response->setKey(request->getKey()); \  
     response->setHttpMethod(request->getHttpMethod()); \  
     type1##ResponseHandler handler(request, response, _responseChunkCallback);     type1##ResponseHandler handler(request, response, _responseChunkCallback);
  
 #define VOIDINTRO );  
 #define NOVOIDINTRO(type) ,type);  
 #define METHODINTRO ,CIMValue(), Array<CIMParamValue>(), request->methodName );  
   
   
 #define HandlerIntroVoid(type,message,request,response,handler) \  
      HandlerIntroBase(type,type,message,request,response,handler,VOIDINTRO)  
   
 #define HandlerIntroMethod(type,message,request,response,handler) \  
      HandlerIntroBase(type,type,message,request,response,handler,METHODINTRO)  
   
 #define HandlerIntroInd(type,message,request,response,handler) \ #define HandlerIntroInd(type,message,request,response,handler) \
      HandlerIntroBase(type,Operation,message,request,response,handler,VOIDINTRO)       HandlerIntroBase(type,Operation,message,request,response,handler)
  
 #define HandlerIntroInit(type,message,request,response,handler) \ #define HandlerIntroInit(type,message,request,response,handler) \
      HandlerIntroBase(type,Operation,message,request,response,handler,VOIDINTRO)       HandlerIntroBase(type,Operation,message,request,response,handler)
  
 #define HandlerIntro(type,message,request,response,handler,respType) \  #define HandlerIntro(type,message,request,response,handler) \
      HandlerIntroBase(type,type,message,request,response,handler,NOVOIDINTRO(respType))       HandlerIntroBase(type,type,message,request,response,handler)
  
 #define HandlerCatch(handler) \ #define HandlerCatch(handler) \
     catch(CIMException & e)  \     catch(CIMException & e)  \
Line 573 
Line 549 
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); \         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); \
     } \     } \
     catch(...) \     catch(...) \
     { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, \      { PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, \
                 "Exception: Unknown"); \                 "Exception: Unknown"); \
         handler.setStatus(CIM_ERR_FAILED, "Unknown error."); \         handler.setStatus(CIM_ERR_FAILED, "Unknown error."); \
     }     }
Line 597 
Line 573 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleGetInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleGetInstanceRequest");
  
     HandlerIntro(GetInstance,message,request,response,handler,CIMInstance());      HandlerIntro(GetInstance,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 651 
Line 627 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 662 
Line 636 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 738 
Line 710 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 751 
Line 721 
         {         {
         case METHOD_CIMINSTANCEPROVIDER:         case METHOD_CIMINSTANCEPROVIDER:
         {         {
             jint    jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jopRef);              jobject jop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 782 
Line 752 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcimClassRef);              jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcimClassRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jobjectArray jPropertyList = getList(jv,env,request->propertyList);             jobjectArray jPropertyList = getList(jv,env,request->propertyList);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jciRet = env->CallObjectMethod((jobject)pr.jProvider,             jobject jciRet = env->CallObjectMethod((jobject)pr.jProvider,
                                                    id,                                                    id,
                                                    jop,                                                    jop,
Line 800 
Line 772 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
  
             if (jciRet) {             if (jciRet) {
                jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                 jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                 CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                handler.deliver(*ciRet);                handler.deliver(*ciRet);
             }             }
Line 817 
Line 787 
         /* Fix for 4238 */         /* Fix for 4238 */
         case METHOD_INSTANCEPROVIDER2:         case METHOD_INSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jopRef);              jobject jop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 851 
Line 821 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcimClassRef);              jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcimClassRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jobjectArray jPropertyList = getList(jv,env,request->propertyList);             jobjectArray jPropertyList = getList(jv,env,request->propertyList);
   
               StatProviderTimeMeasurement providerTime(response);
   
             jobject      jciRet        = env->CallObjectMethod((jobject)pr.jProvider,             jobject      jciRet        = env->CallObjectMethod((jobject)pr.jProvider,
                                                                id,                                                                id,
                                                                joc,                                                                joc,
Line 868 
Line 841 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 880 
Line 851 
             handler.processing();             handler.processing();
  
             if (jciRet) {             if (jciRet) {
                jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                 jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                 CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                handler.deliver(*ciRet);                handler.deliver(*ciRet);
             }             }
Line 892 
Line 863 
  
         case METHOD_INSTANCEPROVIDER:         case METHOD_INSTANCEPROVIDER:
         {         {
             jint    jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jopRef);              jobject jop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 923 
Line 894 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcimClassRef);              jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcimClassRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             // Modified for Bugzilla# 3679             // Modified for Bugzilla# 3679
             jobject jciRet = env->CallObjectMethod((jobject)pr.jProvider,             jobject jciRet = env->CallObjectMethod((jobject)pr.jProvider,
                                                    id,                                                    id,
Line 937 
Line 910 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
  
             if (jciRet) {             if (jciRet) {
                jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                 jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                 CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                handler.deliver(*ciRet);                handler.deliver(*ciRet);
             }             }
Line 964 
Line 935 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 973 
Line 942 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleEnumerateInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleEnumerateInstanceRequest");
  
     HandlerIntro(EnumerateInstances,message,request,response,handler,Array<CIMInstance>());      HandlerIntro(EnumerateInstances,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 1030 
Line 999 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 1039 
Line 1006 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 1138 
Line 1103 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 1151 
Line 1114 
         {         {
         case METHOD_CIMINSTANCEPROVIDER:         case METHOD_CIMINSTANCEPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 1182 
Line 1145 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jccRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jccRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcc    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jccRef);              jobject jcc    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jccRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jobjectArray jPropertyList = getList(jv,env,request->propertyList);             jobjectArray jPropertyList = getList(jv,env,request->propertyList);
   
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr           = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr           = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                              id,                                                                              id,
                                                                              jcop,                                                                              jcop,
Line 1199 
Line 1165 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jAr) {             if (jAr) {
                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {
Line 1210 
Line 1174 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                     /* Fix for 4237 */                     /* Fix for 4237 */
                     CIMClass cls;                     CIMClass cls;
Line 1250 
Line 1214 
  
         case METHOD_CIMINSTANCEPROVIDER2:         case METHOD_CIMINSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 1284 
Line 1248 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jccRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jccRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcc    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jccRef);              jobject jcc    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jccRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jobjectArray jPropertyList = getList(jv,env,request->propertyList);             jobjectArray jPropertyList = getList(jv,env,request->propertyList);
   
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr           = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr           = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                              id,                                                                              id,
                                                                              joc,                                                                              joc,
Line 1301 
Line 1268 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 1319 
Line 1284 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                     /* Fix for 4237 */                     /* Fix for 4237 */
                     CIMClass cls;                     CIMClass cls;
Line 1360 
Line 1325 
         /* Fix for 4189 */         /* Fix for 4189 */
         case METHOD_INSTANCEPROVIDER2:         case METHOD_INSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 1394 
Line 1359 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jccRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jccRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcc    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jccRef);              jobject jcc    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jccRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jobjectArray jPropertyList = getList(jv,env,request->propertyList);             jobjectArray jPropertyList = getList(jv,env,request->propertyList);
   
               StatProviderTimeMeasurement providerTime(response);
   
             jobject      jVec          = env->CallObjectMethod((jobject)pr.jProvider,             jobject      jVec          = env->CallObjectMethod((jobject)pr.jProvider,
                                                                id,                                                                id,
                                                                joc,                                                                joc,
Line 1411 
Line 1379 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 1429 
Line 1395 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                     /* Fix for 4237 */                     /* Fix for 4237 */
                     CIMClass             cls;                     CIMClass             cls;
Line 1475 
Line 1441 
  
         case METHOD_INSTANCEPROVIDER:         case METHOD_INSTANCEPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 1506 
Line 1472 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jccRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jccRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcc    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jccRef);              jobject jcc    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jccRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             // Modified for Bugzilla# 3679             // Modified for Bugzilla# 3679
             jobject jVec = env->CallObjectMethod((jobject)pr.jProvider,             jobject jVec = env->CallObjectMethod((jobject)pr.jProvider,
                                                  id,                                                  id,
Line 1521 
Line 1489 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jVec) {             if (jVec) {
                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {
Line 1532 
Line 1498 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                     /* Fix for 4237 */                     /* Fix for 4237 */
                     CIMClass cls;                     CIMClass cls;
Line 1588 
Line 1554 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 1597 
Line 1561 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "JMPIProviderManager::handleEnumerateInstanceNamesRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "JMPIProviderManager::handleEnumerateInstanceNamesRequest");
  
     HandlerIntro(EnumerateInstanceNames,message,request,response, handler,Array<CIMObjectPath>());      HandlerIntro(EnumerateInstanceNames,message,request,response, handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 1652 
Line 1616 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 1661 
Line 1623 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 1747 
Line 1707 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 1760 
Line 1718 
         {         {
         case METHOD_CIMINSTANCEPROVIDER:         case METHOD_CIMINSTANCEPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 1791 
Line 1749 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcimClassRef);              jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcimClassRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                    id,                                                                    id,
                                                                    jcop,                                                                    jcop,
Line 1803 
Line 1763 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jAr) {             if (jAr) {
                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {
Line 1814 
Line 1772 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint           jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong          jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                     CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 1828 
Line 1786 
  
         case METHOD_CIMINSTANCEPROVIDER2:         case METHOD_CIMINSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 1862 
Line 1820 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcimClassRef);              jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcimClassRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                    id,                                                                    id,
                                                                    joc,                                                                    joc,
Line 1875 
Line 1835 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 1893 
Line 1851 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint           jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong          jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                     CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 1907 
Line 1865 
  
         case METHOD_INSTANCEPROVIDER2:         case METHOD_INSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 1941 
Line 1899 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcimClassRef);              jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcimClassRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jVec = env->CallObjectMethod((jobject)pr.jProvider,             jobject jVec = env->CallObjectMethod((jobject)pr.jProvider,
                                                  id,                                                  id,
                                                  joc,                                                  joc,
Line 1954 
Line 1914 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 1972 
Line 1930 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint           jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong          jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                     CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 1986 
Line 1944 
  
         case METHOD_INSTANCEPROVIDER:         case METHOD_INSTANCEPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 2017 
Line 1975 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong   jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
             jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcimClassRef);              jobject jcimClass    = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcimClassRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jVec = env->CallObjectMethod((jobject)pr.jProvider,             jobject jVec = env->CallObjectMethod((jobject)pr.jProvider,
                                                  id,                                                  id,
                                                  jcop,                                                  jcop,
Line 2030 
Line 1990 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jVec) {             if (jVec) {
                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {
Line 2041 
Line 1999 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint           jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong          jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                     CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 2066 
Line 2024 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 2075 
Line 2031 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleCreateInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleCreateInstanceRequest");
  
     HandlerIntro(CreateInstance,message,request,response,handler,CIMObjectPath());      HandlerIntro(CreateInstance,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 2124 
Line 2080 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 2133 
Line 2087 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 2181 
Line 2133 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 2194 
Line 2144 
         {         {
         case METHOD_INSTANCEPROVIDER:         case METHOD_INSTANCEPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             CIMInstance *ci     = new CIMInstance (request->newInstance);             CIMInstance *ci     = new CIMInstance (request->newInstance);
             jint         jciRef = DEBUG_ConvertCToJava (CIMInstance*, jint, ci);              jlong        jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
             jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewI,jciRef);              jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewJ,jciRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleCreateInstanceRequest: id = "<<id<<", jcop = "<<jcop<<", jci = "<<jci<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleCreateInstanceRequest: id = "<<id<<", jcop = "<<jcop<<", jci = "<<jci<<PEGASUS_STD(endl));
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jcopRet = env->CallObjectMethod((jobject)pr.jProvider,             jobject jcopRet = env->CallObjectMethod((jobject)pr.jProvider,
                                                     id,                                                     id,
                                                     jcop,                                                     jcop,
Line 2214 
Line 2166 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
  
             if (jcopRet) {             if (jcopRet) {
                 jint           jCopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                  jlong          jCopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                 CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCopRetRef);                  CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCopRetRef);
  
                 handler.deliver(*copRet);                 handler.deliver(*copRet);
             }             }
Line 2230 
Line 2180 
  
         case METHOD_INSTANCEPROVIDER2:         case METHOD_INSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             CIMInstance *ci     = new CIMInstance (request->newInstance);             CIMInstance *ci     = new CIMInstance (request->newInstance);
             jint         jciRef = DEBUG_ConvertCToJava (CIMInstance*, jint, ci);              jlong        jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
             jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewI,jciRef);              jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewJ,jciRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleCreateInstanceRequest: id = "<<id<<", jcop = "<<jcop<<", jci = "<<jci<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleCreateInstanceRequest: id = "<<id<<", jcop = "<<jcop<<", jci = "<<jci<<PEGASUS_STD(endl));
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jcopRet = env->CallObjectMethod((jobject)pr.jProvider,             jobject jcopRet = env->CallObjectMethod((jobject)pr.jProvider,
                                                     id,                                                     id,
                                                     joc,                                                     joc,
Line 2254 
Line 2206 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 2266 
Line 2216 
             handler.processing();             handler.processing();
  
             if (jcopRet) {             if (jcopRet) {
                 jint           jCopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                  jlong          jCopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                 CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCopRetRef);                  CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCopRetRef);
  
                 handler.deliver(*copRet);                 handler.deliver(*copRet);
             }             }
Line 2288 
Line 2238 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 2297 
Line 2245 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleModifyInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleModifyInstanceRequest");
  
     HandlerIntroVoid(ModifyInstance,message,request,response,handler);      HandlerIntro(ModifyInstance,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 2339 
Line 2287 
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,"Calling provider.modifyInstance: " + pr.getName());         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,"Calling provider.modifyInstance: " + pr.getName());
  
         DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleModifyInstanceRequest: Calling provider "<<PEGASUS_STD(hex)<<(int)&pr<<PEGASUS_STD(dec)<<", name = "<<pr.getName ()<<", module = "<<pr.getModule()<<" modifyInstance: "<<pr.getName()<<PEGASUS_STD(endl));          DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleModifyInstanceRequest: Calling provider "<<PEGASUS_STD(hex)<<(long)&pr<<PEGASUS_STD(dec)<<", name = "<<pr.getName ()<<", module = "<<pr.getModule()<<" modifyInstance: "<<pr.getName()<<PEGASUS_STD(endl));
  
         JvmVector *jv = 0;         JvmVector *jv = 0;
  
Line 2349 
Line 2297 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 2358 
Line 2304 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 2426 
Line 2370 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 2439 
Line 2381 
         {         {
         case METHOD_INSTANCEPROVIDER2:         case METHOD_INSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             CIMInstance *ci     = new CIMInstance (request->modifiedInstance);             CIMInstance *ci     = new CIMInstance (request->modifiedInstance);
             jint         jciRef = DEBUG_ConvertCToJava (CIMInstance*, jint, ci);              jlong        jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
             jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewI,jciRef);              jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewJ,jciRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jobjectArray jPropertyList = getList(jv,env,request->propertyList);             jobjectArray jPropertyList = getList(jv,env,request->propertyList);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod((jobject)pr.jProvider,             env->CallVoidMethod((jobject)pr.jProvider,
                                 id,                                 id,
                                 joc,                                 joc,
Line 2463 
Line 2407 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 2476 
Line 2418 
  
         case METHOD_CIMINSTANCEPROVIDER:         case METHOD_CIMINSTANCEPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             CIMInstance *ci     = new CIMInstance (request->modifiedInstance);             CIMInstance *ci     = new CIMInstance (request->modifiedInstance);
             jint         jciRef = DEBUG_ConvertCToJava (CIMInstance*, jint, ci);              jlong        jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
             jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewI,jciRef);              jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewJ,jciRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jobjectArray jPropertyList = getList(jv,env,request->propertyList);             jobjectArray jPropertyList = getList(jv,env,request->propertyList);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod((jobject)pr.jProvider,             env->CallVoidMethod((jobject)pr.jProvider,
                                 id,                                 id,
                                 jcop,                                 jcop,
Line 2497 
Line 2441 
                                 jPropertyList);                                 jPropertyList);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
         case METHOD_INSTANCEPROVIDER:         case METHOD_INSTANCEPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             CIMInstance *ci     = new CIMInstance (request->modifiedInstance);             CIMInstance *ci     = new CIMInstance (request->modifiedInstance);
             jint         jciRef = DEBUG_ConvertCToJava (CIMInstance*, jint, ci);              jlong        jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
             jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewI,jciRef);              jobject      jci    = env->NewObject(jv->CIMInstanceClassRef,jv->CIMInstanceNewJ,jciRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod((jobject)pr.jProvider,             env->CallVoidMethod((jobject)pr.jProvider,
                                 id,                                 id,
                                 jcop,                                 jcop,
                                 jci);                                 jci);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
Line 2539 
Line 2481 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 2548 
Line 2488 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleDeleteInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleDeleteInstanceRequest");
  
     HandlerIntroVoid(DeleteInstance,message,request,response,handler);      HandlerIntro(DeleteInstance,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 2597 
Line 2537 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 2606 
Line 2544 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 2652 
Line 2588 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 2665 
Line 2599 
         {         {
         case METHOD_INSTANCEPROVIDER2:         case METHOD_INSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod((jobject)pr.jProvider,             env->CallVoidMethod((jobject)pr.jProvider,
                                 id,                                 id,
                                 joc,                                 joc,
Line 2680 
Line 2616 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 2693 
Line 2627 
  
         case METHOD_INSTANCEPROVIDER:         case METHOD_INSTANCEPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod((jobject)pr.jProvider,             env->CallVoidMethod((jobject)pr.jProvider,
                                 id,                                 id,
                                 jcop);                                 jcop);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
Line 2721 
Line 2655 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 2730 
Line 2662 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleExecQueryRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleExecQueryRequest");
  
     HandlerIntro(ExecQuery,message,request,response,handler,Array<CIMObject>());      HandlerIntro(ExecQuery,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 2787 
Line 2719 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 2796 
Line 2726 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 2890 
Line 2818 
  
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                                "Could not find a method for the provider based on InterfaceType."));                                                                "Could not find a method for the provider based on InterfaceType."));
Line 2903 
Line 2829 
         {         {
         case METHOD_CIMINSTANCEPROVIDER:         case METHOD_CIMINSTANCEPROVIDER:
         {         {
             jint    jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewJ, jcopref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 2937 
Line 2863 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint jcls = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong jcls = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
  
             jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcls);              jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcls);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                    id,                                                                    id,
                                                                    jcop,                                                                    jcop,
Line 2952 
Line 2880 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jAr) {             if (jAr) {
                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {
Line 2963 
Line 2889 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 2977 
Line 2903 
  
         case METHOD_CIMINSTANCEPROVIDER2:         case METHOD_CIMINSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewJ, jcopref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 3014 
Line 2940 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint jcls = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong jcls = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
  
             jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcls);              jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcls);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                    id,                                                                    id,
                                                                    joc,                                                                    joc,
Line 3030 
Line 2958 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 3048 
Line 2974 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 3062 
Line 2988 
  
         case METHOD_INSTANCEPROVIDER2:         case METHOD_INSTANCEPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewJ, jcopref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 3097 
Line 3023 
  
             CIMClass *pcls = new CIMClass (cls);             CIMClass *pcls = new CIMClass (cls);
  
             JMPIjvm::checkException(env);              jlong jcls = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
  
             jint jcls = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcls);
   
             jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcls);  
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,              StatProviderTimeMeasurement providerTime(response);
   
               jobject jVec = env->CallObjectMethod ((jobject)pr.jProvider,
                                                                    id,                                                                    id,
                                                                    joc,                                                                    joc,
                                                                    jcop,                                                                    jcop,
Line 3115 
Line 3041 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 3125 
Line 3049 
             }             }
  
             handler.processing();             handler.processing();
             if (jAr) {              if (jVec)
                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {              {
                   for (int i = 0, m = env->CallIntMethod (jVec, JMPIjvm::jv.VectorSize); i < m; i++)
                   {
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jobject jciRet = env->GetObjectArrayElement(jAr,i);                      jobject jciRet = env->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,i);
                       DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleExecQueryRequest: jciRet = "<<jciRet<<PEGASUS_STD(endl));
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     handler.deliver(*ciRet);                     handler.deliver(*ciRet);
                 }                 }
             }             }
               DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleExecQueryRequest: done!"<<PEGASUS_STD(endl));
             handler.complete();             handler.complete();
             break;             break;
         }         }
  
         case METHOD_INSTANCEPROVIDER:         case METHOD_INSTANCEPROVIDER:
         {         {
             jint    jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewJ, jcopref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 3181 
Line 3109 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint jcls = DEBUG_ConvertCToJava (CIMClass*, jint, pcls);              jlong jcls = DEBUG_ConvertCToJava (CIMClass*, jlong, pcls);
  
             jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcls);              jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewJ,jcls);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint jql = 0; // @BUG - how to convert?              jlong jql = 0; // @BUG - how to convert?
  
             jobjectArray jVec = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,              StatProviderTimeMeasurement providerTime(response);
   
               jobject jVec = env->CallObjectMethod ((jobject)pr.jProvider,
                                                                     id,                                                                     id,
                                                                     jcop,                                                                     jcop,
                                                                     jquery,                                                                     jquery,
Line 3198 
Line 3128 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jVec) {             if (jVec) {
                 for (int i=0,m=env->GetArrayLength(jVec); i<m; i++) {                  for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jobject jciRet = env->GetObjectArrayElement(jVec,i);                      jobject jciRet = env->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,i);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint         jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong        jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 3234 
Line 3162 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 3243 
Line 3169 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleAssociatorsRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleAssociatorsRequest");
  
     HandlerIntro(Associators,message,request,response,handler,Array<CIMObject>());      HandlerIntro(Associators,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 3304 
Line 3230 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 3313 
Line 3237 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 3426 
Line 3348 
  
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                                "Could not find a method for the provider based on InterfaceType."));                                                                "Could not find a method for the provider based on InterfaceType."));
Line 3439 
Line 3359 
         {         {
         case METHOD_CIMASSOCIATORPROVIDER:         case METHOD_CIMASSOCIATORPROVIDER:
         {         {
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, assocPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, assocPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 3459 
Line 3379 
  
 #ifdef PEGASUS_DEBUG #ifdef PEGASUS_DEBUG
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: assocName          = "<<assocPath->toString ()<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: assocName          = "<<assocPath->toString ()<<PEGASUS_STD(endl));
               DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: pathName           = "<<objectPath->toString ()<<PEGASUS_STD(endl));
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: resultClass        = "<<request->resultClass<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: resultClass        = "<<request->resultClass<<PEGASUS_STD(endl));
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: role               = "<<request->role<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: role               = "<<request->role<<PEGASUS_STD(endl));
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: resultRole         = "<<request->resultRole<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: resultRole         = "<<request->resultRole<<PEGASUS_STD(endl));
Line 3466 
Line 3387 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   jAssociationName,                                                                   jAssociationName,
Line 3479 
Line 3402 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jAr) {             if (jAr) {
                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {
Line 3490 
Line 3411 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
                     CIMClass             cls;                     CIMClass             cls;
  
                     try                     try
Line 3534 
Line 3455 
  
         case METHOD_CIMASSOCIATORPROVIDER2:         case METHOD_CIMASSOCIATORPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, assocPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, assocPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 3557 
Line 3478 
  
 #ifdef PEGASUS_DEBUG #ifdef PEGASUS_DEBUG
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: assocName          = "<<assocPath->toString ()<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: assocName          = "<<assocPath->toString ()<<PEGASUS_STD(endl));
               DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: pathName           = "<<objectPath->toString ()<<PEGASUS_STD(endl));
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: resultClass        = "<<request->resultClass<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: resultClass        = "<<request->resultClass<<PEGASUS_STD(endl));
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: role               = "<<request->role<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: role               = "<<request->role<<PEGASUS_STD(endl));
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: resultRole         = "<<request->resultRole<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: resultRole         = "<<request->resultRole<<PEGASUS_STD(endl));
Line 3564 
Line 3486 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   joc,                                                                   joc,
Line 3578 
Line 3502 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 3596 
Line 3518 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
                     CIMClass             cls;                     CIMClass             cls;
  
                     try                     try
Line 3640 
Line 3562 
  
         case METHOD_ASSOCIATORPROVIDER2:         case METHOD_ASSOCIATORPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, assocPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, assocPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 3671 
Line 3593 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   joc,                                                                   joc,
Line 3685 
Line 3609 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 3703 
Line 3625 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
                     CIMClass             cls;                     CIMClass             cls;
  
                     try                     try
Line 3747 
Line 3669 
  
         case METHOD_ASSOCIATORPROVIDER:         case METHOD_ASSOCIATORPROVIDER:
         {         {
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, assocPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, assocPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 3775 
Line 3697 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorsRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   jAssociationName,                                                                   jAssociationName,
Line 3788 
Line 3712 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jVec) {             if (jVec) {
                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {
Line 3799 
Line 3721 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint                 jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong                jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance         *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance         *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
                     CIMClass             cls;                     CIMClass             cls;
  
                     try                     try
Line 3851 
Line 3773 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 3860 
Line 3780 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleAssociatorNamesRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleAssociatorNamesRequest");
  
     HandlerIntro(AssociatorNames,message,request,response,handler,Array<CIMObjectPath>());      HandlerIntro(AssociatorNames,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 3914 
Line 3834 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 3923 
Line 3841 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 4020 
Line 3936 
  
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                                "Could not find a method for the provider based on InterfaceType."));                                                                "Could not find a method for the provider based on InterfaceType."));
Line 4033 
Line 3947 
         {         {
         case METHOD_CIMASSOCIATORPROVIDER:         case METHOD_CIMASSOCIATORPROVIDER:
         {         {
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, assocPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, assocPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 4056 
Line 3970 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorNamesRequest: resultRole  = "<<request->resultRole<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorNamesRequest: resultRole  = "<<request->resultRole<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   jAssociationName,                                                                   jAssociationName,
Line 4066 
Line 3982 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jAr) {             if (jAr) {
                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {
Line 4077 
Line 3991 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint           jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong          jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                     CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRet);                      CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 4091 
Line 4005 
  
         case METHOD_CIMASSOCIATORPROVIDER2:         case METHOD_CIMASSOCIATORPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, assocPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, assocPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 4116 
Line 4030 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorNamesRequest: resultRole  = "<<request->resultRole<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorNamesRequest: resultRole  = "<<request->resultRole<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   joc,                                                                   joc,
Line 4127 
Line 4043 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 4145 
Line 4059 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint           jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong          jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                     CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRet);                      CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 4159 
Line 4073 
  
         case METHOD_ASSOCIATORPROVIDER:         case METHOD_ASSOCIATORPROVIDER:
         {         {
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, assocPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, assocPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 4183 
Line 4097 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorNamesRequest: resultRole  = "<<request->resultRole<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorNamesRequest: resultRole  = "<<request->resultRole<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   jAssociationName,                                                                   jAssociationName,
Line 4193 
Line 4109 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jVec) {             if (jVec) {
                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {
Line 4204 
Line 4118 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint           jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong          jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                     CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 4218 
Line 4132 
  
         case METHOD_ASSOCIATORPROVIDER2:         case METHOD_ASSOCIATORPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, assocPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, assocPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 4245 
Line 4159 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorNamesRequest: resultRole  = "<<request->resultRole<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleAssociatorNamesRequest: resultRole  = "<<request->resultRole<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   joc,                                                                   joc,
Line 4256 
Line 4172 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 4274 
Line 4188 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint           jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong          jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
                     CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet     = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
Line 4299 
Line 4213 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 4308 
Line 4220 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleReferencesRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleReferencesRequest");
  
     HandlerIntro(References,message,request,response,handler,Array<CIMObject>());      HandlerIntro(References,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 4369 
Line 4281 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 4378 
Line 4288 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 4479 
Line 4387 
  
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                                "Could not find a method for the provider based on InterfaceType."));                                                                "Could not find a method for the provider based on InterfaceType."));
Line 4492 
Line 4398 
         {         {
         case METHOD_CIMASSOCIATORPROVIDER:         case METHOD_CIMASSOCIATORPROVIDER:
         {         {
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, resultPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, resultPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 4515 
Line 4421 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferencesRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferencesRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   jAssociationName,                                                                   jAssociationName,
Line 4526 
Line 4434 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jAr) {             if (jAr) {
                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {
Line 4537 
Line 4443 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
                     CIMClass             cls;                     CIMClass             cls;
  
                     try                     try
Line 4581 
Line 4487 
  
         case METHOD_CIMASSOCIATORPROVIDER2:         case METHOD_CIMASSOCIATORPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, resultPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, resultPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 4607 
Line 4513 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferencesRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferencesRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   joc,                                                                   joc,
Line 4619 
Line 4527 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 4637 
Line 4543 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance         *ciRet = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
                     CIMClass             cls;                     CIMClass             cls;
  
                     try                     try
Line 4681 
Line 4587 
  
         case METHOD_ASSOCIATORPROVIDER:         case METHOD_ASSOCIATORPROVIDER:
         {         {
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, resultPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, resultPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 4705 
Line 4611 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferencesRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferencesRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   jAssociationName,                                                                   jAssociationName,
Line 4716 
Line 4624 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jVec) {             if (jVec) {
                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {
Line 4727 
Line 4633 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint                 jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong                jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance         *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance         *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
                     CIMClass             cls;                     CIMClass             cls;
  
                     try                     try
Line 4768 
Line 4674 
  
         case METHOD_ASSOCIATORPROVIDER2:         case METHOD_ASSOCIATORPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, resultPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, resultPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 4795 
Line 4701 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferencesRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferencesRequest: includeClassOrigin = "<<false<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   joc,                                                                   joc,
Line 4807 
Line 4715 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 4825 
Line 4731 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint                 jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);                      jlong                jciRetRef = env->CallLongMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst);
                     CIMInstance         *ciRet     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef);                      CIMInstance         *ciRet     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciRetRef);
                     CIMClass             cls;                     CIMClass             cls;
  
                     try                     try
Line 4877 
Line 4783 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 4886 
Line 4790 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleReferenceNamesRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleReferenceNamesRequest");
  
     HandlerIntro(ReferenceNames,message,request,response,handler,Array<CIMObjectPath>());      HandlerIntro(ReferenceNames,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 4939 
Line 4843 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 4948 
Line 4850 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 5037 
Line 4937 
  
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                                "Could not find a method for the provider based on InterfaceType."));                                                                "Could not find a method for the provider based on InterfaceType."));
Line 5050 
Line 4948 
         {         {
         case METHOD_CIMASSOCIATORPROVIDER:         case METHOD_CIMASSOCIATORPROVIDER:
         {         {
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, resultPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, resultPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5069 
Line 4967 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferenceNamesRequest: role               = "<<request->role<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferenceNamesRequest: role               = "<<request->role<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   jPathName,                                                                   jPathName,
Line 5077 
Line 4977 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jAr) {             if (jAr) {
                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {                 for (int i=0,m=env->GetArrayLength(jAr); i<m; i++) {
Line 5088 
Line 4986 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     handler.deliver(*copRet);                     handler.deliver(*copRet);
                 }                 }
Line 5103 
Line 5001 
  
         case METHOD_CIMASSOCIATORPROVIDER2:         case METHOD_CIMASSOCIATORPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, resultPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, resultPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5125 
Line 5023 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferenceNamesRequest: role               = "<<request->role<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferenceNamesRequest: role               = "<<request->role<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jAr=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   joc,                                                                   joc,
Line 5134 
Line 5034 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 5152 
Line 5050 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     handler.deliver(*copRet);                     handler.deliver(*copRet);
                 }                 }
Line 5167 
Line 5065 
  
         case METHOD_ASSOCIATORPROVIDER:         case METHOD_ASSOCIATORPROVIDER:
         {         {
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, resultPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, resultPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5187 
Line 5085 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferenceNamesRequest: role               = "<<request->role<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferenceNamesRequest: role               = "<<request->role<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   jAssociationName,                                                                   jAssociationName,
Line 5195 
Line 5095 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
             if (jVec) {             if (jVec) {
                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {                 for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) {
Line 5206 
Line 5104 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     handler.deliver(*copRet);                     handler.deliver(*copRet);
                 }                 }
Line 5221 
Line 5119 
  
         case METHOD_ASSOCIATORPROVIDER2:         case METHOD_ASSOCIATORPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, resultPath);              jlong   jAssociationNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, resultPath);
             jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jAssociationNameRef);              jobject jAssociationName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jAssociationNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jPathNameRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jPathNameRef);              jobject jPathName    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jPathNameRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5244 
Line 5142 
             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferenceNamesRequest: role               = "<<request->role<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"--- JMPIProviderManager::handleReferenceNamesRequest: role               = "<<request->role<<PEGASUS_STD(endl));
 #endif #endif
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,             jobjectArray jVec=(jobjectArray)env->CallObjectMethod((jobject)pr.jProvider,
                                                                   id,                                                                   id,
                                                                   joc,                                                                   joc,
Line 5253 
Line 5153 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 5271 
Line 5169 
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     jint jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);                      jlong jcopRetRef = env->CallLongMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst);
  
                     JMPIjvm::checkException(env);                     JMPIjvm::checkException(env);
  
                     CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef);                      CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jcopRetRef);
  
                     handler.deliver(*copRet);                     handler.deliver(*copRet);
                 }                 }
Line 5297 
Line 5195 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 5306 
Line 5202 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleGetPropertyRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleGetPropertyRequest");
  
     HandlerIntro(GetProperty,message,request,response,handler,CIMValue());      HandlerIntro(GetProperty,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 5355 
Line 5251 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 5364 
Line 5258 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 5416 
Line 5308 
  
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                                "Could not find a method for the provider based on InterfaceType."));                                                                "Could not find a method for the provider based on InterfaceType."));
Line 5429 
Line 5319 
         {         {
         case METHOD_PROPERTYPROVIDER:         case METHOD_PROPERTYPROVIDER:
         {         {
             jint    jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewJ, jcopref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5442 
Line 5332 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_GETSTARTTIME;              StatProviderTimeMeasurement providerTime(response);
  
             jobject jvalRet = env->CallObjectMethod ((jobject)pr.jProvider,             jobject jvalRet = env->CallObjectMethod ((jobject)pr.jProvider,
                                                      id,                                                      id,
Line 5452 
Line 5342 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
  
             if (jvalRet)             if (jvalRet)
             {             {
                jint      jvalRetRef = env->CallIntMethod(jvalRet,JMPIjvm::jv.CIMValueCInst);                 jlong     jvalRetRef = env->CallLongMethod(jvalRet,JMPIjvm::jv.CIMValueCInst);
                CIMValue *valRet     = DEBUG_ConvertJavaToC (jint, CIMValue*, jvalRetRef);                 CIMValue *valRet     = DEBUG_ConvertJavaToC (jlong, CIMValue*, jvalRetRef);
  
                JMPIjvm::checkException(env);                JMPIjvm::checkException(env);
  
Line 5471 
Line 5359 
  
         case METHOD_PROPERTYPROVIDER2:         case METHOD_PROPERTYPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewJ, jcopref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5487 
Line 5375 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_GETSTARTTIME;              StatProviderTimeMeasurement providerTime(response);
  
             jobject jvalRet = env->CallObjectMethod ((jobject)pr.jProvider,             jobject jvalRet = env->CallObjectMethod ((jobject)pr.jProvider,
                                                      id,                                                      id,
Line 5498 
Line 5386 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 5511 
Line 5397 
  
             if (jvalRet)             if (jvalRet)
             {             {
                jint      jvalRetRef = env->CallIntMethod(jvalRet,JMPIjvm::jv.CIMValueCInst);                 jlong     jvalRetRef = env->CallLongMethod(jvalRet,JMPIjvm::jv.CIMValueCInst);
                CIMValue *valRet     = DEBUG_ConvertJavaToC (jint, CIMValue*, jvalRetRef);                 CIMValue *valRet     = DEBUG_ConvertJavaToC (jlong, CIMValue*, jvalRetRef);
  
                JMPIjvm::checkException(env);                JMPIjvm::checkException(env);
  
Line 5535 
Line 5421 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 5544 
Line 5428 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleSetPropertyRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleSetPropertyRequest");
  
     HandlerIntroVoid(SetProperty,message,request,response,handler);      HandlerIntro(SetProperty,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 5593 
Line 5477 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 5602 
Line 5484 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 5656 
Line 5536 
  
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                            MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                                "Could not find a method for the provider based on InterfaceType."));                                                                "Could not find a method for the provider based on InterfaceType."));
Line 5669 
Line 5547 
         {         {
         case METHOD_PROPERTYPROVIDER:         case METHOD_PROPERTYPROVIDER:
         {         {
             jint    jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewJ, jcopref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5686 
Line 5564 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jvalref = DEBUG_ConvertCToJava (CIMValue*, jint, val);              jlong   jvalref = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
             jobject jval    = env->NewObject(jv->CIMValueClassRef, jv->CIMValueNewI, jvalref);              jobject jval    = env->NewObject(jv->CIMValueClassRef, jv->CIMValueNewJ, jvalref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_GETSTARTTIME;              StatProviderTimeMeasurement providerTime(response);
  
             env->CallVoidMethod ((jobject)pr.jProvider,             env->CallVoidMethod ((jobject)pr.jProvider,
                                  id,                                  id,
Line 5701 
Line 5579 
                                  jval);                                  jval);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
         case METHOD_PROPERTYPROVIDER2:         case METHOD_PROPERTYPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewJ, jcopref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5728 
Line 5604 
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             jint    jvalref = DEBUG_ConvertCToJava (CIMValue*, jint, val);              jlong   jvalref = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
             jobject jval    = env->NewObject(jv->CIMValueClassRef, jv->CIMValueNewI, jvalref);              jobject jval    = env->NewObject(jv->CIMValueClassRef, jv->CIMValueNewJ, jvalref);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_GETSTARTTIME;              StatProviderTimeMeasurement providerTime(response);
  
             env->CallVoidMethod ((jobject)pr.jProvider,             env->CallVoidMethod ((jobject)pr.jProvider,
                                  id,                                  id,
Line 5751 
Line 5627 
  
                JMPIjvm::checkException(env);                JMPIjvm::checkException(env);
             }             }
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
Line 5769 
Line 5643 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 5778 
Line 5650 
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleInvokeMethodRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIProviderManager::handleInvokeMethodRequest");
  
     HandlerIntroMethod(InvokeMethod,message,request,response,handler);      HandlerIntro(InvokeMethod,message,request,response,handler);
  
     typedef enum {     typedef enum {
        METHOD_UNKNOWN = 0,        METHOD_UNKNOWN = 0,
Line 5828 
Line 5700 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 5837 
Line 5707 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 5930 
Line 5798 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 5943 
Line 5809 
         {         {
         case METHOD_CIMMETHODPROVIDER:         case METHOD_CIMMETHODPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 5958 
Line 5824 
  
             for (Uint32 i=0; i<m; i++) {             for (Uint32 i=0; i<m; i++) {
               CIMParamValue *parm    = new CIMParamValue(request->inParameters[i]);               CIMParamValue *parm    = new CIMParamValue(request->inParameters[i]);
               jint           jArgRef = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);                jlong          jArgRef = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);
               jobject        jArg    = env->NewObject(jv->CIMArgumentClassRef,jv->CIMArgumentNewI,jArgRef);                jobject        jArg    = env->NewObject(jv->CIMArgumentClassRef,jv->CIMArgumentNewJ,jArgRef);
  
               env->SetObjectArrayElement(jArIn,i,jArg);               env->SetObjectArrayElement(jArIn,i,jArg);
             }             }
  
             jobjectArray jArOut=(jobjectArray)env->NewObjectArray(24,jv->CIMArgumentClassRef,NULL);             jobjectArray jArOut=(jobjectArray)env->NewObjectArray(24,jv->CIMArgumentClassRef,NULL);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jValueRet = env->CallObjectMethod((jobject)pr.jProvider,             jobject jValueRet = env->CallObjectMethod((jobject)pr.jProvider,
                                                       id,                                                       id,
                                                       jcop,                                                       jcop,
Line 5974 
Line 5842 
                                                       jArOut);                                                       jArOut);
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
  
             jint      jValueRetRef = env->CallIntMethod(jValueRet,JMPIjvm::jv.CIMValueCInst);              jlong     jValueRetRef = env->CallLongMethod(jValueRet,JMPIjvm::jv.CIMValueCInst);
             CIMValue *valueRet     = DEBUG_ConvertJavaToC (jint, CIMValue*, jValueRetRef);              CIMValue *valueRet     = DEBUG_ConvertJavaToC (jlong, CIMValue*, jValueRetRef);
  
             handler.deliver(*valueRet);             handler.deliver(*valueRet);
  
Line 5991 
Line 5857 
                 if (jArg==NULL)                 if (jArg==NULL)
                    break;                    break;
  
                 jint           jpRef = env->CallIntMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);                  jlong          jpRef = env->CallLongMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);
                 CIMParamValue *p     = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jpRef);                  CIMParamValue *p     = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jpRef);
  
                 JMPIjvm::checkException(env);                 JMPIjvm::checkException(env);
  
Line 6005 
Line 5871 
  
         case METHOD_CIMMETHODPROVIDER2:         case METHOD_CIMMETHODPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 6023 
Line 5889 
  
             for (Uint32 i=0; i<m; i++) {             for (Uint32 i=0; i<m; i++) {
               CIMParamValue *parm    = new CIMParamValue(request->inParameters[i]);               CIMParamValue *parm    = new CIMParamValue(request->inParameters[i]);
               jint           jArgRef = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);                jlong          jArgRef = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);
               jobject        jArg    = env->NewObject(jv->CIMArgumentClassRef,jv->CIMArgumentNewI,jArgRef);                jobject        jArg    = env->NewObject(jv->CIMArgumentClassRef,jv->CIMArgumentNewJ,jArgRef);
  
               env->SetObjectArrayElement(jArIn,i,jArg);               env->SetObjectArrayElement(jArIn,i,jArg);
             }             }
  
             jobjectArray jArOut=(jobjectArray)env->NewObjectArray(24,jv->CIMArgumentClassRef,NULL);             jobjectArray jArOut=(jobjectArray)env->NewObjectArray(24,jv->CIMArgumentClassRef,NULL);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jValueRet = env->CallObjectMethod((jobject)pr.jProvider,             jobject jValueRet = env->CallObjectMethod((jobject)pr.jProvider,
                                                       id,                                                       id,
                                                       joc,                                                       joc,
Line 6040 
Line 5908 
                                                       jArOut);                                                       jArOut);
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 6051 
Line 5917 
  
             handler.processing();             handler.processing();
  
             jint      jValueRetRef = env->CallIntMethod(jValueRet,JMPIjvm::jv.CIMValueCInst);              jlong     jValueRetRef = env->CallLongMethod(jValueRet,JMPIjvm::jv.CIMValueCInst);
             CIMValue *valueRet     = DEBUG_ConvertJavaToC (jint, CIMValue*, jValueRetRef);              CIMValue *valueRet     = DEBUG_ConvertJavaToC (jlong, CIMValue*, jValueRetRef);
  
             handler.deliver(*valueRet);             handler.deliver(*valueRet);
  
Line 6064 
Line 5930 
                 if (jArg==NULL)                 if (jArg==NULL)
                    break;                    break;
  
                 jint           jpRef = env->CallIntMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);                  jlong          jpRef = env->CallLongMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);
                 CIMParamValue *p     = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jpRef);                  CIMParamValue *p     = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jpRef);
  
                 JMPIjvm::checkException(env);                 JMPIjvm::checkException(env);
  
Line 6078 
Line 5944 
  
         case METHOD_METHODPROVIDER:         case METHOD_METHODPROVIDER:
         {         {
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 6096 
Line 5962 
                 const CIMParamValue &parm  = request->inParameters[i];                 const CIMParamValue &parm  = request->inParameters[i];
                 const CIMValue       v     = parm.getValue();                 const CIMValue       v     = parm.getValue();
                 CIMProperty         *p     = new CIMProperty(parm.getParameterName(),v,v.getArraySize());                 CIMProperty         *p     = new CIMProperty(parm.getParameterName(),v,v.getArraySize());
                 jint                 jpRef = DEBUG_ConvertCToJava (CIMProperty*, jint, p);                  jlong                jpRef = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
                 jobject              jp    = env->NewObject(jv->CIMPropertyClassRef,jv->CIMPropertyNewI,jpRef);                  jobject              jp    = env->NewObject(jv->CIMPropertyClassRef,jv->CIMPropertyNewJ,jpRef);
  
                 env->CallVoidMethod(jVecIn,jv->VectorAddElement,jp);                 env->CallVoidMethod(jVecIn,jv->VectorAddElement,jp);
              }              }
Line 6105 
Line 5971 
             jobject jVecOut=env->NewObject(jv->VectorClassRef,jv->VectorNew);             jobject jVecOut=env->NewObject(jv->VectorClassRef,jv->VectorNew);
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jValueRet = env->CallObjectMethod((jobject)pr.jProvider,             jobject jValueRet = env->CallObjectMethod((jobject)pr.jProvider,
                                                       id,                                                       id,
                                                       jcop,                                                       jcop,
Line 6113 
Line 5981 
                                                       jVecOut);                                                       jVecOut);
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             handler.processing();             handler.processing();
  
             jint      jValueRetRef = env->CallIntMethod(jValueRet,JMPIjvm::jv.CIMValueCInst);              jlong     jValueRetRef = env->CallLongMethod(jValueRet,JMPIjvm::jv.CIMValueCInst);
             CIMValue *valueRet     = DEBUG_ConvertJavaToC (jint, CIMValue*, jValueRetRef);              CIMValue *valueRet     = DEBUG_ConvertJavaToC (jlong, CIMValue*, jValueRetRef);
  
             handler.deliver(*valueRet);             handler.deliver(*valueRet);
  
Line 6130 
Line 5996 
  
                 JMPIjvm::checkException(env);                 JMPIjvm::checkException(env);
  
                 jint         jpRef = env->CallIntMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);                  jlong        jpRef = env->CallLongMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);
                 CIMProperty *p     = DEBUG_ConvertJavaToC (jint, CIMProperty*, jpRef);                  CIMProperty *p     = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jpRef);
  
                 JMPIjvm::checkException(env);                 JMPIjvm::checkException(env);
  
Line 6144 
Line 6010 
  
         case METHOD_METHODPROVIDER2:         case METHOD_METHODPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             jint    jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath);              jlong   jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, objectPath);
             jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 6165 
Line 6031 
                 const CIMParamValue &parm  = request->inParameters[i];                 const CIMParamValue &parm  = request->inParameters[i];
                 const CIMValue       v     = parm.getValue();                 const CIMValue       v     = parm.getValue();
                 CIMProperty         *p     = new CIMProperty(parm.getParameterName(),v,v.getArraySize());                 CIMProperty         *p     = new CIMProperty(parm.getParameterName(),v,v.getArraySize());
                 jint                 jpRef = DEBUG_ConvertCToJava (CIMProperty*, jint, p);                  jlong                jpRef = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
                 jobject              jp    = env->NewObject(jv->CIMPropertyClassRef,jv->CIMPropertyNewI,jpRef);                  jobject              jp    = env->NewObject(jv->CIMPropertyClassRef,jv->CIMPropertyNewJ,jpRef);
  
                 env->CallVoidMethod(jVecIn,jv->VectorAddElement,jp);                 env->CallVoidMethod(jVecIn,jv->VectorAddElement,jp);
              }              }
Line 6174 
Line 6040 
             jobject jVecOut=env->NewObject(jv->VectorClassRef,jv->VectorNew);             jobject jVecOut=env->NewObject(jv->VectorClassRef,jv->VectorNew);
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             jobject jValueRet = env->CallObjectMethod((jobject)pr.jProvider,             jobject jValueRet = env->CallObjectMethod((jobject)pr.jProvider,
                                                       id,                                                       id,
                                                       joc,                                                       joc,
Line 6183 
Line 6051 
                                                       jVecOut);                                                       jVecOut);
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
             STAT_PMS_PROVIDEREND;  
   
             if (joc)             if (joc)
             {             {
                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);                env->CallVoidMethod (joc, JMPIjvm::jv.OperationContextUnassociate);
Line 6194 
Line 6060 
  
             handler.processing();             handler.processing();
  
             jint      jValueRetRef = env->CallIntMethod(jValueRet,JMPIjvm::jv.CIMValueCInst);              jlong     jValueRetRef = env->CallLongMethod(jValueRet,JMPIjvm::jv.CIMValueCInst);
             CIMValue *valueRet     = DEBUG_ConvertJavaToC (jint, CIMValue*, jValueRetRef);              CIMValue *valueRet     = DEBUG_ConvertJavaToC (jlong, CIMValue*, jValueRetRef);
  
             handler.deliver(*valueRet);             handler.deliver(*valueRet);
  
Line 6207 
Line 6073 
  
                 JMPIjvm::checkException(env);                 JMPIjvm::checkException(env);
  
                 jint         jpRef = env->CallIntMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);                  jlong        jpRef = env->CallLongMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);
                 CIMProperty *p     = DEBUG_ConvertJavaToC (jint, CIMProperty*, jpRef);                  CIMProperty *p     = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jpRef);
  
                 JMPIjvm::checkException(env);                 JMPIjvm::checkException(env);
  
Line 6232 
Line 6098 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 6248 
Line 6112 
     return 0;     return 0;
 } }
  
 CMPI_SelectExp *  WQLSelectStatement *
 newSelectExp (CIMOMHandleQueryContext *qContext,  newSelectExp (String& query,
               OperationContext        *ctx,                String& queryLanguage)
               String&                  query,  
               String&                  queryLanguage,  
               CIMNamespaceName&        nameSpace,  
               Array<CIMName>&          classNames,  
               CIMPropertyList&         propertyList)  
 {  
    CMPI_SelectExp *eSelx = NULL;  
   
    eSelx = new CMPI_SelectExp (*ctx,  
                                qContext,  
                                query,  
                                queryLanguage);  
   
    if (!eSelx)  
    {    {
       return eSelx;     WQLSelectStatement *stmt = new WQLSelectStatement (queryLanguage, query);
    }  
  
    for (Uint32 i = 0, n = classNames.size (); i < n; i++)     try
    {    {
        CIMObjectPath className (System::getHostName(),        WQLParser::parse (query, *stmt);
                                 nameSpace,  
                                 classNames[i]);  
   
        eSelx->classNames.append (className);  
    }    }
      catch (const Exception &e)
    if (!propertyList.isNull ())  
    {  
       Array<CIMName> p      = propertyList.getPropertyNameArray ();  
       int            pCount = p.size ();  
   
       eSelx->props = (const char**)malloc ((1 + pCount) * sizeof (char*));  
   
       for (int i = 0; i < pCount; i++)  
       {       {
          eSelx->props[i] = strdup (p[i].getString ().getCString ());        cerr << "Error: newSelectExp caught: " << e.getMessage () << endl;
       }  
   
       eSelx->props[pCount] = NULL;  
    }    }
  
    return eSelx;     return stmt;
 } }
  
 Message * JMPIProviderManager::handleCreateSubscriptionRequest(const Message * message) throw() Message * JMPIProviderManager::handleCreateSubscriptionRequest(const Message * message) throw()
Line 6417 
Line 6251 
  
            CIMOMHandleQueryContext *qContext = new CIMOMHandleQueryContext (CIMNamespaceName (request->nameSpace.getString ()),            CIMOMHandleQueryContext *qContext = new CIMOMHandleQueryContext (CIMNamespaceName (request->nameSpace.getString ()),
                                                                             *pr._cimom_handle);                                                                             *pr._cimom_handle);
            CMPI_SelectExp          *eSelx    = newSelectExp (qContext,  
                                                              prec->ctx,  
                                                              srec->query,  
                                                              srec->queryLanguage,  
                                                              request->nameSpace,  
                                                              request->classNames,  
                                                              srec->propertyList);  
   
            srec->eSelx    = eSelx;  
            srec->qContext = qContext;            srec->qContext = qContext;
  
            CIMObjectPath sPath (request->subscriptionInstance.getPath ().getClassName ().getString ());             CIMObjectPath        sPath = request->subscriptionInstance.getPath ();
              Array<CIMKeyBinding> kb;
   
              // Technically we only need Name and Handler for uniqueness
              kb = sPath.getKeyBindings ();
   
              // Add an entry for every provider.
              kb.append (CIMKeyBinding ("Provider",
                                        pr.getName (),
                                        CIMKeyBinding::STRING));
  
            sPath.setNameSpace (request->subscriptionInstance.getPath ().getNameSpace ());             sPath.setKeyBindings (kb);
  
            AutoMutex lock (mutexSelxTab);            AutoMutex lock (mutexSelxTab);
  
Line 6438 
Line 6272 
  
            selxTab.insert (sPath.toString (), srec);            selxTab.insert (sPath.toString (), srec);
  
            DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleCreateSubscriptionRequest: For selxTab "<<sPath.toString ()<<", srec = "<<PEGASUS_STD(hex)<<(int)srec<<PEGASUS_STD(dec)<<", eSelx = "<<PEGASUS_STD(hex)<<(int)eSelx<<PEGASUS_STD(dec)<<", qContext = "<<PEGASUS_STD(hex)<<(int)qContext<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleCreateSubscriptionRequest: For selxTab "<<sPath.toString ()<<", srec = "<<PEGASUS_STD(hex)<<(long)srec<<PEGASUS_STD(dec)<<", qContext = "<<PEGASUS_STD(hex)<<(long)qContext<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
         }         }
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.createSubscriptionRequest: " + pr.getName());         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.createSubscriptionRequest: " + pr.getName());
Line 6453 
Line 6287 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 6462 
Line 6294 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 6514 
Line 6344 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 6527 
Line 6355 
         {         {
         case METHOD_EVENTPROVIDER:         case METHOD_EVENTPROVIDER:
         {         {
             CMPI_SelectExp *eSelx     = newSelectExp (srec->qContext,              WQLSelectStatement *stmt       = newSelectExp (srec->query,
                                                       prec->ctx,                                                             srec->queryLanguage);
                                                       srec->query,              jlong               jStmtRef   = DEBUG_ConvertCToJava (WQLSelectStatement *, jlong, stmt);
                                                       srec->queryLanguage,              jobject             jSelectExp = env->NewObject(jv->SelectExpClassRef,jv->SelectExpNewJ,jStmtRef);
                                                       request->nameSpace,  
                                                       request->classNames,  
                                                       srec->propertyList);  
             jint            jEselxRef = DEBUG_ConvertCToJava (CMPI_SelectExp*, jint, eSelx);  
             jobject         jEselx    = env->NewObject(jv->SelectExpClassRef,jv->SelectExpNewI,jEselxRef);  
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 6546 
Line 6369 
             CIMObjectPath *cop     = new CIMObjectPath (System::getHostName(),             CIMObjectPath *cop     = new CIMObjectPath (System::getHostName(),
                                                         request->nameSpace,                                                         request->nameSpace,
                                                         request->classNames[0]);                                                         request->classNames[0]);
             jint           jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);              jlong          jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
             jobject        jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject        jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod ((jobject)pr.jProvider,             env->CallVoidMethod ((jobject)pr.jProvider,
                                  id,                                  id,
                                  jEselx,                                   jSelectExp,
                                  jType,                                  jType,
                                  jcop,                                  jcop,
                                  (jboolean)fNewPrec);                                  (jboolean)fNewPrec);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
         case METHOD_EVENTPROVIDER2:         case METHOD_EVENTPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             CMPI_SelectExp *eSelx     = newSelectExp (srec->qContext,              WQLSelectStatement *stmt       = newSelectExp (srec->query,
                                                       prec->ctx,                                                             srec->queryLanguage);
                                                       srec->query,              jlong               jStmtRef   = DEBUG_ConvertCToJava (WQLSelectStatement *, jlong, stmt);
                                                       srec->queryLanguage,              jobject             jSelectExp = env->NewObject(jv->SelectExpClassRef,jv->SelectExpNewJ,jStmtRef);
                                                       request->nameSpace,  
                                                       request->classNames,  
                                                       srec->propertyList);  
             jint            jEselxRef = DEBUG_ConvertCToJava (CMPI_SelectExp*, jint, eSelx);  
             jobject         jEselx    = env->NewObject(jv->SelectExpClassRef,jv->SelectExpNewI,jEselxRef);  
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 6588 
Line 6406 
             CIMObjectPath *cop     = new CIMObjectPath (System::getHostName(),             CIMObjectPath *cop     = new CIMObjectPath (System::getHostName(),
                                                         request->nameSpace,                                                         request->nameSpace,
                                                         request->classNames[0]);                                                         request->classNames[0]);
             jint           jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);              jlong          jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
             jobject        jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject        jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod ((jobject)pr.jProvider,             env->CallVoidMethod ((jobject)pr.jProvider,
                                  id,                                  id,
                                  joc,                                  joc,
                                  jEselx,                                   jSelectExp,
                                  jType,                                  jType,
                                  jcop,                                  jcop,
                                  (jboolean)fNewPrec);                                  (jboolean)fNewPrec);
Line 6609 
Line 6429 
  
                JMPIjvm::checkException(env);                JMPIjvm::checkException(env);
             }             }
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
Line 6710 
Line 6528 
         }         }
  
         {         {
            CIMObjectPath sPath (request->subscriptionInstance.getPath ().getClassName ().getString ());             CIMObjectPath        sPath = request->subscriptionInstance.getPath ();
              Array<CIMKeyBinding> kb;
  
            sPath.setNameSpace (request->subscriptionInstance.getPath ().getNameSpace ());             // Technically we only need Name and Handler for uniqueness
              kb = sPath.getKeyBindings ();
   
              // Add an entry for every provider.
              kb.append (CIMKeyBinding ("Provider",
                                        pr.getName (),
                                        CIMKeyBinding::STRING));
   
              sPath.setKeyBindings (kb);
  
            String sPathString = sPath.toString ();            String sPathString = sPath.toString ();
  
Line 6720 
Line 6547 
  
            DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleDeleteSubscriptionRequest: Removing selxTab "<<sPathString<<PEGASUS_STD(endl));            DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleDeleteSubscriptionRequest: Removing selxTab "<<sPathString<<PEGASUS_STD(endl));
  
            selxTab.lookup (sPathString, srec);             if (!selxTab.lookup (sPathString, srec))
              {
                  PEGASUS_ASSERT(0);
              }
  
            DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleDeleteSubscriptionRequest: For selxTab "<<sPathString<<", srec = "<<PEGASUS_STD(hex)<<(int)srec<<PEGASUS_STD(dec)<<", eSelx = "<<PEGASUS_STD(hex)<<(int)srec->eSelx<<PEGASUS_STD(dec)<<", qContext = "<<PEGASUS_STD(hex)<<(int)srec->qContext<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleDeleteSubscriptionRequest: For selxTab "<<sPathString<<", srec = "<<PEGASUS_STD(hex)<<(long)srec<<PEGASUS_STD(dec)<<", qContext = "<<PEGASUS_STD(hex)<<(long)srec->qContext<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
  
            selxTab.remove (sPathString);            selxTab.remove (sPathString);
         }         }
Line 6739 
Line 6569 
         {         {
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
  
             STAT_COPYDISPATCHER  
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",                                            MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED",
                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));                                                               "Could not initialize the JVM (Java Virtual Machine) runtime environment."));
Line 6748 
Line 6576 
  
         JMPIProvider::pm_service_op_lock op_lock(&pr);         JMPIProvider::pm_service_op_lock op_lock(&pr);
  
         STAT_GETSTARTTIME;  
   
         jmethodID id               = NULL;         jmethodID id               = NULL;
         String    interfaceType;         String    interfaceType;
         String    interfaceVersion;         String    interfaceVersion;
Line 6800 
Line 6626 
  
            PEG_METHOD_EXIT();            PEG_METHOD_EXIT();
  
            STAT_COPYDISPATCHER  
   
            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,            throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",                                           MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND",
                                                               "Could not find a method for the provider based on InterfaceType."));                                                               "Could not find a method for the provider based on InterfaceType."));
Line 6813 
Line 6637 
         {         {
         case METHOD_EVENTPROVIDER:         case METHOD_EVENTPROVIDER:
         {         {
             CMPI_SelectExp *eSelx     = newSelectExp (srec->qContext,              WQLSelectStatement *stmt       = newSelectExp (srec->query,
                                                       prec->ctx,                                                             srec->queryLanguage);
                                                       srec->query,              jlong               jStmtRef   = DEBUG_ConvertCToJava (WQLSelectStatement *, jlong, stmt);
                                                       srec->queryLanguage,              jobject             jSelectExp = env->NewObject(jv->SelectExpClassRef,jv->SelectExpNewJ,jStmtRef);
                                                       request->nameSpace,  
                                                       request->classNames,  
                                                       srec->propertyList);  
             jint            jEselxRef = DEBUG_ConvertCToJava (CMPI_SelectExp*, jint, eSelx);  
             jobject         jEselx    = env->NewObject(jv->SelectExpClassRef,jv->SelectExpNewI,jEselxRef);  
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 6832 
Line 6651 
             CIMObjectPath *cop     = new CIMObjectPath (System::getHostName(),             CIMObjectPath *cop     = new CIMObjectPath (System::getHostName(),
                                                         request->nameSpace,                                                         request->nameSpace,
                                                         request->classNames[0]);                                                         request->classNames[0]);
             jint           jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);              jlong          jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
             jobject        jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject        jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod ((jobject)pr.jProvider,             env->CallVoidMethod ((jobject)pr.jProvider,
                                  id,                                  id,
                                  jEselx,                                   jSelectExp,
                                  jType,                                  jType,
                                  jcop,                                  jcop,
                                  (jboolean)fFreePrec);                                  (jboolean)fFreePrec);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
         case METHOD_EVENTPROVIDER2:         case METHOD_EVENTPROVIDER2:
         {         {
             jint    jocRef = DEBUG_ConvertCToJava (OperationContext*, jint, &request->operationContext);              jlong   jocRef = DEBUG_ConvertCToJava (OperationContext*, jlong, &request->operationContext);
             jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewI,jocRef);              jobject joc    = env->NewObject(jv->OperationContextClassRef,jv->OperationContextNewJ,jocRef);
  
             CMPI_SelectExp *eSelx     = newSelectExp (srec->qContext,              WQLSelectStatement *stmt       = newSelectExp (srec->query,
                                                       prec->ctx,                                                             srec->queryLanguage);
                                                       srec->query,              jlong               jStmtRef   = DEBUG_ConvertCToJava (WQLSelectStatement *, jlong, stmt);
                                                       srec->queryLanguage,              jobject             jSelectExp = env->NewObject(jv->SelectExpClassRef,jv->SelectExpNewJ,jStmtRef);
                                                       request->nameSpace,  
                                                       request->classNames,  
                                                       srec->propertyList);  
             jint            jEselxRef = DEBUG_ConvertCToJava (CMPI_SelectExp*, jint, eSelx);  
             jobject         jEselx    = env->NewObject(jv->SelectExpClassRef,jv->SelectExpNewI,jEselxRef);  
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
Line 6874 
Line 6688 
             CIMObjectPath *cop     = new CIMObjectPath (System::getHostName(),             CIMObjectPath *cop     = new CIMObjectPath (System::getHostName(),
                                                         request->nameSpace,                                                         request->nameSpace,
                                                         request->classNames[0]);                                                         request->classNames[0]);
             jint           jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);              jlong          jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
             jobject        jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef);              jobject        jcop    = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewJ,jcopRef);
  
             JMPIjvm::checkException(env);             JMPIjvm::checkException(env);
  
               StatProviderTimeMeasurement providerTime(response);
   
             env->CallVoidMethod ((jobject)pr.jProvider,             env->CallVoidMethod ((jobject)pr.jProvider,
                                  id,                                  id,
                                  joc,                                  joc,
                                  jEselx,                                   jSelectExp,
                                  jType,                                  jType,
                                  jcop,                                  jcop,
                                  (jboolean)fFreePrec);                                  (jboolean)fFreePrec);
Line 6895 
Line 6711 
  
                JMPIjvm::checkException(env);                JMPIjvm::checkException(env);
             }             }
   
             STAT_PMS_PROVIDEREND;  
             break;             break;
         }         }
  
Line 6916 
Line 6730 
  
     if (srec)     if (srec)
     {     {
        if (  srec->eSelx  
           && srec->eSelx->props  
           )  
        {  
           const char **props = srec->eSelx->props;  
   
           while (*props)  
           {  
              const char *prop = *props;  
   
              props++;  
   
              if (prop)  
              {  
                 free ((void *)prop);  
              }  
           }  
   
           free ((void *)srec->eSelx->props);  
        }  
        delete srec->eSelx;  
        delete srec->qContext;        delete srec->qContext;
     }     }
     delete srec;     delete srec;
Line 6952 
Line 6745 
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     STAT_COPYDISPATCHER  
   
     return(response);     return(response);
 } }
  
Line 6996 
Line 6787 
  
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //     //
     //  Set HTTP method in response from request     //  Set HTTP method in response from request
     //     //
Line 7030 
Line 6818 
  
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request     //  Set HTTP method in response from request
     response->setHttpMethod (request->getHttpMethod ());     response->setHttpMethod (request->getHttpMethod ());
  
Line 7058 
Line 6843 
  
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request     //  Set HTTP method in response from request
     response->setHttpMethod (request->getHttpMethod ());     response->setHttpMethod (request->getHttpMethod ());
  
Line 7167 
Line 6949 
         }         }
         catch(...)         catch(...)
         {         {
             PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,              PEG_TRACE_CSTRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,
                 "Unknown error in handleSubscriptionInitCompleteRequest");                 "Unknown error in handleSubscriptionInitCompleteRequest");
         }         }
     }     }
Line 7220 
Line 7002 
  
 String JMPIProviderManager::resolveFileName(String fileName) String JMPIProviderManager::resolveFileName(String fileName)
 { {
     String name;      String name = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));
     #if defined(PEGASUS_OS_TYPE_WINDOWS)      // physfilename = everything up to the delimiter pointing at class start
     name = fileName; // + String(".dll");      // in case there is no delimiter anymore, it takes the entire filename
     #elif defined(PEGASUS_OS_HPUX) && defined(PEGASUS_PLATFORM_HPUX_PARISC_ACC)      String physfilename = fileName.subString(0, fileName.find(":"));
     name = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));      // look in all(multiple) homed pathes for the physical file
     name.append(String("/") + fileName); // + String(".sl"));      name = FileSystem::getAbsoluteFileName(name, physfilename);
     #elif defined(PEGASUS_OS_HPUX) && !defined(PEGASUS_PLATFORM_HPUX_PARISC_ACC)      // construct back the fully specified jar:<classname> provider name
     name = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));      name = FileSystem::extractFilePath(name) + fileName;
     name.append(String("/") + fileName); // + String(".so"));  
     #elif defined(PEGASUS_OS_OS400)  
     name = filrName;  
     #else  
     name = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));  
     name.append(String("/") + fileName); // + String(".so"));  
     #endif  
     return name;     return name;
 } }
  


Legend:
Removed from v.1.46  
changed lines
  Added in v.1.59.4.2

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2