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

Diff for /pegasus/src/Pegasus/ProviderManager2/JMPI/JMPIImpl.cpp between version 1.75 and 1.83

version 1.75, 2007/06/29 13:47:07 version 1.83, 2008/08/29 09:22:34
Line 48 
Line 48 
 #include <Pegasus/Common/CIMObjectPath.h> #include <Pegasus/Common/CIMObjectPath.h>
 #include <Pegasus/Common/CIMProperty.h> #include <Pegasus/Common/CIMProperty.h>
 #include <Pegasus/Common/OperationContext.h> #include <Pegasus/Common/OperationContext.h>
   #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Provider/CIMOMHandle.h> #include <Pegasus/Provider/CIMOMHandle.h>
 #include <Pegasus/Client/CIMClient.h> #include <Pegasus/Client/CIMClient.h>
 #include <Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h> #include <Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h>
Line 60 
Line 61 
  
 JavaVM *JMPIjvm::jvm=NULL; JavaVM *JMPIjvm::jvm=NULL;
 JvmVector JMPIjvm::jv; JvmVector JMPIjvm::jv;
 int JMPIjvm::trace=0;  
   
 #ifdef PEGASUS_DEBUG  
 #define DDD(x) if (JMPIjvm::trace) x;  
 #else  
 #define DDD(x)  
 #endif  
  
 #include "Convert.h" #include "Convert.h"
  
Line 114 
Line 108 
 }; };
  
 const METHOD_STRUCT instanceMethodNames[]={ const METHOD_STRUCT instanceMethodNames[]={
 /*00 VectorNew                      */ { /*Vector                */ 0, "<init>",          "()V" },  /*00 VectorNew                      */
 /*01 BooleanNewZ                    */ { /*Boolean               */ 1, "<init>",          "(Z)V" },  { /*Vector                */
 /*02 ByteNewB                       */ { /*Byte                  */ 2, "<init>",          "(B)V" },      0,
 /*03 ShortNewS                      */ { /*Short                 */ 3, "<init>",          "(S)V" },      "<init>",
 /*04 IntegerNewI                    */ { /*Integer               */ 4, "<init>",          "(I)V" },      "()V" },
 /*05 LongNewJ                       */ { /*Long                  */ 5, "<init>",          "(J)V" },  /*01 BooleanNewZ                    */
 /*06 FloatNewF                      */ { /*Float                 */ 6, "<init>",          "(F)V" },  { /*Boolean               */
 /*07 DoubleNewD                     */ { /*Double                */ 7, "<init>",          "(D)V" },      1,
 /*08 UnsignedInt8NewS               */ { /*UnsignedInt8          */ 8, "<init>",          "(S)V" },      "<init>",
 /*09 UnsignedInt16NewI              */ { /*UnsignedInt16         */ 9, "<init>",          "(I)V" },      "(Z)V" },
 /*10 UnsignedInt32NewJ              */ { /*UnsignedInt32         */10, "<init>",          "(J)V" },  /*02 ByteNewB                       */
 /*11 UnsignedInt64NewBi             */ { /*UnsignedInt64         */11, "<init>",          "(Ljava/math/BigInteger;)V" },  { /*Byte                  */
 /*12 CIMObjectPathNewJ              */ { /*CIMObjectPath         */12, "<init>",          "(J)V" },      2,
 /*13 CIMExceptionNewSt              */ { /*CIMException          */13, "<init>",          "(Ljava/lang/String;)V" },      "<init>",
 /*14 CIMPropertyNewJ                */ { /*CIMProperty           */15, "<init>",          "(J)V" },      "(B)V" },
 /*15 VectorAddElement               */ { /*Vector                */ 0, "addElement",      "(Ljava/lang/Object;)V" },  /*03 ShortNewS                      */
 /*16 VectorElementAt                */ { /*Vector                */ 0, "elementAt",       "(I)Ljava/lang/Object;" },  { /*Short                 */
 /*17 CIMOMHandleNewJSt              */ { /*CIMOMHandle           */16, "<init>",          "(JLjava/lang/String;)V" },      3,
 /*18 CIMExceptionNewI               */ { /*CIMException          */13, "<init>",          "(I)V" },      "<init>",
 /*19 CIMClassNewJ                   */ { /*CIMClass              */17, "<init>",          "(J)V" },      "(S)V" },
 /*20 CIMInstanceNewJ                */ { /*CIMInstance           */18, "<init>",          "(J)V" },  /*04 IntegerNewI                    */
 /*21 CIMObjectPathCInst             */ { /*CIMObjectPath         */12, "cInst",           "()J" },  { /*Integer               */
 /*22 CIMInstanceCInst               */ { /*CIMInstance           */18, "cInst",           "()J" },      4,
 /*23 CIMClassCInst                  */ { /*CIMClass              */17, "cInst",           "()J" },      "<init>",
 /*24 ObjectToString                 */ { /*Object                */20, "toString",        "()Ljava/lang/String;" },      "(I)V" },
 /*25 ThrowableGetMessage            */ { /*Throwable             */21, "getMessage",      "()Ljava/lang/String;" },  /*05 LongNewJ                       */
 /*26 CIMExceptionGetID              */ { /*CIMException          */13, "getID",           "()Ljava/lang/String;" },  { /*Long                  */
 /*27 VectorSize                     */ { /*Vector                */ 0, "size",            "()I" },      5,
 /*28 CIMPropertyCInst               */ { /*CIMProperty           */15, "cInst",           "()J" },      "<init>",
 /*29 CIMOMHandleGetClass            */ { /*CIMOMHandle           */16, "getClass",        "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" },      "(J)V" },
 /*30 VectorRemoveElementAt          */ { /*Vector                */ 0, "removeElementAt", "(I)V" },  /*06 FloatNewF                      */
 /*31 CIMValueCInst                  */ { /*CIMValue              */19, "cInst",           "()J" },  { /*Float                 */
 /*32 CIMExceptionNewISt             */ { /*CIMException          */13, "<init>",          "(ILjava/lang/String;)V" },      6,
 /*33 CIMExceptionGetCode            */ { /*CIMException          */13, "getCode",         "()I" },      "<init>",
 /*34 CIMDateTimeNewJ                */ { /*CIMDateTime           */24, "<init>",          "(J)V" },      "(F)V" },
 /*35 SelectExpNewJ                  */ { /*SelectExp             */25, "<init>",          "(J)V" },  /*07 DoubleNewD                     */
 /*36 CIMQualifierNewJ               */ { /*CIMQualifier          */26, "<init>",          "(J)V" },  { /*Double                */
 /*37 CIMFlavorNewI                  */ { /*CIMFlavor             */28, "<init>",          "(I)V" },      7,
 /*38 CIMFlavorGetFlavor             */ { /*CIMFlavor             */28, "getFlavor",       "()I" },      "<init>",
 /*39 CIMArgumentCInst               */ { /*CIMArgument           */29, "cInst",           "()J" },      "(D)V" },
 /*40 CIMArgumentNewJ                */ { /*CIMArgument           */29, "<init>",          "(J)V" },  /*08 UnsignedInt8NewS               */
 /*41 CIMExceptionNew                */ { /*CIMException          */13, "<init>",          "()V" },  { /*UnsignedInt8          */
 /*42 CIMExceptionNewStOb            */ { /*CIMException          */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;)V" },      8,
 /*43 CIMExceptionNewStObOb          */ { /*CIMException          */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" },      "<init>",
 /*44 CIMExceptionNewStObObOb        */ { /*CIMException          */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" },      "(S)V" },
 /*45 CIMValueNewJ                   */ { /*CIMValue              */19, "<init>",          "(J)V" },  /*09 UnsignedInt16NewI              */
 /*46 CIMObjectNewJZ                 */ { /*CIMObject             */31, "<init>",          "(JZ)V" },  { /*UnsignedInt16         */
 /*47 CharacterNewC                  */ { /*Character             */32, "<init>",          "(C)V" },      9,
 /*48 OperationContextNewJ           */ { /*OperationContext      */33, "<init>",          "(J)V" },      "<init>",
 /*49 OperationContextUnassociate    */ { /*OperationContext      */33, "unassociate",     "()V" },      "(I)V" },
 /*50 ClassGetInterfaces             */ { /*Class                 */34, "getInterfaces",   "()[Ljava/lang/Class;" },  /*10 UnsignedInt32NewJ              */
 /*51 ClassGetName                   */ { /*Class                 */34, "getName",         "()Ljava/lang/String;" },  { /*UnsignedInt32         */
 /*52 UnsignedInt64NewStr            */ { /*UnsignedInt64         */11, "<init>",          "(Ljava/lang/String;)V" },      10,
 /*53 ByteArrayOutputStreamNew       */ { /*ByteArrayOutputStream */35, "<init>",          "()V" },      "<init>",
 /*54 PrintStreamNewOb               */ { /*PrintStreamNew        */36, "<init>",          "(Ljava/io/OutputStream;)V" },      "(J)V" },
 /*55 ThrowablePrintStackTrace       */ { /*Throwable             */21, "printStackTrace", "(Ljava/io/PrintStream;)V" },  /*11 UnsignedInt64NewBi             */
 /*56 ByteArrayOutputStreamToString  */ { /*ByteArrayOutputStream */35, "toString",        "()Ljava/lang/String;" }  { /*UnsignedInt64         */
       11,
       "<init>",
       "(Ljava/math/BigInteger;)V" },
   /*12 CIMObjectPathNewJ              */
   { /*CIMObjectPath         */
       12,
       "<init>",
       "(J)V" },
   /*13 CIMExceptionNewSt              */
   { /*CIMException          */
       13,
       "<init>",
       "(Ljava/lang/String;)V" },
   /*14 CIMPropertyNewJ                */
   { /*CIMProperty           */
       15,
       "<init>",
       "(J)V" },
   /*15 VectorAddElement               */
   { /*Vector                */
       0,
       "addElement",
       "(Ljava/lang/Object;)V" },
   /*16 VectorElementAt                */
   { /*Vector                */
       0,
       "elementAt",
       "(I)Ljava/lang/Object;" },
   /*17 CIMOMHandleNewJSt              */
   { /*CIMOMHandle           */
       16,
       "<init>",
       "(JLjava/lang/String;)V" },
   /*18 CIMExceptionNewI               */
   { /*CIMException          */
       13,
       "<init>",
       "(I)V" },
   /*19 CIMClassNewJ                   */
   { /*CIMClass              */
       17,
       "<init>",
       "(J)V" },
   /*20 CIMInstanceNewJ                */
   { /*CIMInstance           */
       18,
       "<init>",
       "(J)V" },
   /*21 CIMObjectPathCInst             */
   { /*CIMObjectPath         */
       12,
       "cInst",
       "()J" },
   /*22 CIMInstanceCInst               */
   { /*CIMInstance           */
       18,
       "cInst",
       "()J" },
   /*23 CIMClassCInst                  */
   { /*CIMClass              */
       17,
       "cInst",
       "()J" },
   /*24 ObjectToString                 */
   { /*Object                */
       20,
       "toString",
       "()Ljava/lang/String;" },
   /*25 ThrowableGetMessage            */
   { /*Throwable             */
       21,
       "getMessage",
       "()Ljava/lang/String;" },
   /*26 CIMExceptionGetID              */
   { /*CIMException          */
       13,
       "getID",
       "()Ljava/lang/String;" },
   /*27 VectorSize                     */
   { /*Vector                */
       0,
       "size",
       "()I" },
   /*28 CIMPropertyCInst               */
   { /*CIMProperty           */
       15,
       "cInst",
       "()J" },
   /*29 CIMOMHandleGetClass            */
   { /*CIMOMHandle           */
       16,
       "getClass",
       "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" },
   /*30 VectorRemoveElementAt          */
   { /*Vector                */
       0,
       "removeElementAt",
       "(I)V" },
   /*31 CIMValueCInst                  */
   { /*CIMValue              */
       19,
       "cInst",
       "()J" },
   /*32 CIMExceptionNewISt             */
   { /*CIMException          */
       13,
       "<init>",
       "(ILjava/lang/String;)V" },
   /*33 CIMExceptionGetCode            */
   { /*CIMException          */
       13,
       "getCode",
       "()I" },
   /*34 CIMDateTimeNewJ                */
   { /*CIMDateTime           */
       24,
       "<init>",
       "(J)V" },
   /*35 SelectExpNewJ                  */
   { /*SelectExp             */
       25,
       "<init>",
       "(J)V" },
   /*36 CIMQualifierNewJ               */
   { /*CIMQualifier          */
       26,
       "<init>",
       "(J)V" },
   /*37 CIMFlavorNewI                  */
   { /*CIMFlavor             */
       28,
       "<init>",
       "(I)V" },
   /*38 CIMFlavorGetFlavor             */
   { /*CIMFlavor             */
       28,
       "getFlavor",
       "()I" },
   /*39 CIMArgumentCInst               */
   { /*CIMArgument           */
       29,
       "cInst",
       "()J" },
   /*40 CIMArgumentNewJ                */
   { /*CIMArgument           */
       29,
       "<init>",
       "(J)V" },
   /*41 CIMExceptionNew                */
   { /*CIMException          */
       13,
       "<init>",
       "()V" },
   /*42 CIMExceptionNewStOb            */
   { /*CIMException          */
       13,
       "<init>",
       "(Ljava/lang/String;Ljava/lang/Object;)V" },
   /*43 CIMExceptionNewStObOb          */
   { /*CIMException          */
       13,
       "<init>",
       "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" },
   /*44 CIMExceptionNewStObObOb        */
   { /*CIMException          */
       13,
       "<init>",
       "(Ljava/lang/String;Ljava/lang/Object;"
           "Ljava/lang/Object;Ljava/lang/Object;)V" },
   /*45 CIMValueNewJ                   */
   { /*CIMValue              */
       19,
       "<init>",
       "(J)V" },
   /*46 CIMObjectNewJZ                 */
   { /*CIMObject             */
       31,
       "<init>",
       "(JZ)V" },
   /*47 CharacterNewC                  */
   { /*Character             */
       32,
       "<init>",
       "(C)V" },
   /*48 OperationContextNewJ           */
   { /*OperationContext      */
       33,
       "<init>",
       "(J)V" },
   /*49 OperationContextUnassociate    */
   { /*OperationContext      */
       33,
       "unassociate",
       "()V" },
   /*50 ClassGetInterfaces             */
   { /*Class                 */
       34,
       "getInterfaces",
       "()[Ljava/lang/Class;" },
   /*51 ClassGetName                   */
   { /*Class                 */
       34,
       "getName",
       "()Ljava/lang/String;" },
   /*52 UnsignedInt64NewStr            */
   { /*UnsignedInt64         */
       11,
       "<init>",
       "(Ljava/lang/String;)V" },
   /*53 ByteArrayOutputStreamNew       */
   { /*ByteArrayOutputStream */
       35,
       "<init>",
       "()V" },
   /*54 PrintStreamNewOb               */
   { /*PrintStreamNew        */
       36,
       "<init>",
       "(Ljava/io/OutputStream;)V" },
   /*55 ThrowablePrintStackTrace       */
   { /*Throwable             */
       21,
       "printStackTrace",
       "(Ljava/io/PrintStream;)V" },
   /*56 ByteArrayOutputStreamToString  */
   { /*ByteArrayOutputStream */
       35,
       "toString",
       "()Ljava/lang/String;" }
 }; };
  
 const METHOD_STRUCT staticMethodNames[]={ const METHOD_STRUCT staticMethodNames[]={
 /*00*/ { 14, "valueOf",         "(J)Ljava/math/BigInteger;" },  /*00*/ { 14,
 /*01*/ { 23, "load",            "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" },           "valueOf",
            "(J)Ljava/math/BigInteger;" },
   /*01*/ { 23,
            "load",
            "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" },
 }; };
  
 static int methodInitDone=0; static int methodInitDone=0;
  
 jclass    classRefs[sizeof(classNames)/sizeof(classNames[0])]; jclass    classRefs[sizeof(classNames)/sizeof(classNames[0])];
 jmethodID instanceMethodIDs[sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])];  jmethodID instanceMethodIDs[sizeof(instanceMethodNames) /
 jmethodID staticMethodIDs[sizeof(staticMethodNames)/sizeof(staticMethodNames[0])];                                  sizeof(instanceMethodNames[0])];
   jmethodID staticMethodIDs[sizeof(staticMethodNames) /
                                   sizeof(staticMethodNames[0])];
  
 jclass JMPIjvm::getGlobalClassRef(JNIEnv *env, const char* name) jclass JMPIjvm::getGlobalClassRef(JNIEnv *env, const char* name)
 { {
      PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::getGlobalClassRef");
   
   jclass localRefCls = env->FindClass(name);   jclass localRefCls = env->FindClass(name);
  
   if (localRefCls == NULL)   if (localRefCls == NULL)
     {
        PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
            "No local Class reference found. (localRefCls==NULL)");
        PEG_METHOD_EXIT();
      return JNI_FALSE;      return JNI_FALSE;
     }
   
  
   jclass globalRefCls = (jclass) env->NewGlobalRef(localRefCls);   jclass globalRefCls = (jclass) env->NewGlobalRef(localRefCls);
  
 #if 0 #if 0
   jmethodID   jmidToString   = env->GetMethodID(globalRefCls, "toString", "()Ljava/lang/String;");    jmethodID   jmidToString   = env->GetMethodID(globalRefCls,
   jstring     jstringResult  = (jstring)env->CallObjectMethod(globalRefCls, jmidToString);                                                  "toString",
                                                   "()Ljava/lang/String;");
     jstring     jstringResult  = (jstring)env->CallObjectMethod(globalRefCls,
                                                                 jmidToString);
   const char *pszResult      = env->GetStringUTFChars(jstringResult, 0);   const char *pszResult      = env->GetStringUTFChars(jstringResult, 0);
  
   DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(long)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<", pszResult = "<<pszResult<<PEGASUS_STD(endl));    PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
         "globalRefCls = %p, name = %s, pszResult = %s",
         globalRefCls,name,pszResult));
  
   env->ReleaseStringUTFChars (jstringResult, pszResult);   env->ReleaseStringUTFChars (jstringResult, pszResult);
 #else #else
   DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(long)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<PEGASUS_STD(endl));  
     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
         "globalRefCls = %p, name = %s",globalRefCls,name));
   
 #endif #endif
  
   env->DeleteLocalRef(localRefCls);   env->DeleteLocalRef(localRefCls);
  
     PEG_METHOD_EXIT();
   return globalRefCls;   return globalRefCls;
 } }
  
Line 221 
Line 467 
  
 int JMPIjvm::cacheIDs(JNIEnv *env) int JMPIjvm::cacheIDs(JNIEnv *env)
 { {
      PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::cacheIDs");
   
    if (methodInitDone == 1)    if (methodInitDone == 1)
      {
         PEG_METHOD_EXIT();
       return JNI_TRUE;       return JNI_TRUE;
      }
   
    if (methodInitDone == -1)    if (methodInitDone == -1)
      {
         PEG_METHOD_EXIT();
       return JNI_FALSE;       return JNI_FALSE;
      }
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): enter"<<PEGASUS_STD(endl));  
  
    methodInitDone = -1;    methodInitDone = -1;
  
    for (unsigned i = 0; i<(sizeof(classNames)/sizeof(classNames[0])); i++)    for (unsigned i = 0; i<(sizeof(classNames)/sizeof(classNames[0])); i++)
    {    {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<classNames[i]<<PEGASUS_STD(endl));  
       if ((classRefs[i] = getGlobalClassRef(env,classNames[i])) == NULL)       if ((classRefs[i] = getGlobalClassRef(env,classNames[i])) == NULL)
       {       {
          DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error: Count not find global class ref for "<<classNames[i]<<PEGASUS_STD(endl));           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                "Error: Count not find global class ref for %s",classNames[i]));
  
            PEG_METHOD_EXIT();
          return JNI_FALSE;          return JNI_FALSE;
       }       }
    }    }
  
    for (unsigned j = 0; j<(sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])); j++)     unsigned instanceMethodNamesSize =
          sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0]);
   
      for (unsigned j = 0; j<instanceMethodNamesSize; j++)
    {    {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<j<<": "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<": "<<instanceMethodNames[j].signature<<PEGASUS_STD(endl));         instanceMethodIDs[j] = env->GetMethodID(
       if ((instanceMethodIDs[j] = env->GetMethodID(classRefs[instanceMethodNames[j].clsIndex],                                    classRefs[instanceMethodNames[j].clsIndex],
                                                  instanceMethodNames[j].methodName,                                                  instanceMethodNames[j].methodName,
                                                  instanceMethodNames[j].signature)) == NULL)                                    instanceMethodNames[j].signature);
          if (instanceMethodIDs[j] == NULL)
       {       {
          DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<PEGASUS_STD(endl));             PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                  "Error: Could not get instance method id for %s:%s",
                  classNames[instanceMethodNames[j].clsIndex],
                  instanceMethodNames[j].methodName));
   
              PEG_METHOD_EXIT();
          return 0;          return 0;
       }       }
    }    }
      unsigned staticMethodNamesSize =
    for (unsigned k = 0; k<(sizeof(staticMethodNames)/sizeof(staticMethodNames[0])); k++)         sizeof(staticMethodNames) / sizeof(staticMethodNames[0]);
      for (unsigned k = 0; k<staticMethodNamesSize; k++)
    {    {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<k<<": "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<": "<<staticMethodNames[k].signature<<PEGASUS_STD(endl));         staticMethodIDs[k] = env->GetStaticMethodID(
       if ((staticMethodIDs[k] = env->GetStaticMethodID(classRefs[staticMethodNames[k].clsIndex],                                  classRefs[staticMethodNames[k].clsIndex],
                                                      staticMethodNames[k].methodName,                                                      staticMethodNames[k].methodName,
                                                      staticMethodNames[k].signature)) == NULL)                                  staticMethodNames[k].signature);
   
          if (staticMethodIDs[k] == NULL)
       {       {
          DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<PEGASUS_STD(endl));             PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                  "Error: Could not get static method id for %s:%s",
                  classNames[staticMethodNames[k].clsIndex],
                  staticMethodNames[k].methodName));
   
              PEG_METHOD_EXIT();
          return 0;          return 0;
       }       }
    }    }
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): exit"<<PEGASUS_STD(endl));  
   
    jv.env = env;    jv.env = env;
    jv.classRefs = classRefs;    jv.classRefs = classRefs;
    jv.instMethodIDs = instanceMethodIDs;    jv.instMethodIDs = instanceMethodIDs;
Line 275 
Line 544 
  
    methodInitDone = 1;    methodInitDone = 1;
  
      PEG_METHOD_EXIT();
    return JNI_TRUE;    return JNI_TRUE;
 } }
  
Line 287 
Line 557 
  
 int JMPIjvm::destroyJVM () int JMPIjvm::destroyJVM ()
 { {
    DDD(PEGASUS_STD(cerr)<<"--- JPIjvm::destroyJVM()"<<PEGASUS_STD(endl));     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JPIjvm::destroyJVM");
  
 #ifdef JAVA_DESTROY_VM_WORKS #ifdef JAVA_DESTROY_VM_WORKS
    if (jvm!= NULL)    if (jvm!= NULL)
Line 300 
Line 570 
  
       jvm = NULL;       jvm = NULL;
  
         PEG_METHOD_EXIT();
       return 0;       return 0;
    }    }
 #endif #endif
  
      PEG_METHOD_EXIT();
    return -1;    return -1;
 } }
  
Line 311 
Line 583 
  
 int JMPIjvm::initJVM () int JMPIjvm::initJVM ()
 { {
      PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JPIjvm::initJVM");
   
    AutoMutex lock (_initMutex);    AutoMutex lock (_initMutex);
  
    if (jvm != NULL)    if (jvm != NULL)
Line 339 
Line 613 
    };    };
    std::ostringstream oss;    std::ostringstream oss;
  
 #ifdef PEGASUS_DEBUG     PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
    if (getenv("PEGASUS_JMPI_TRACE"))         "Start to initialize the JVM.");
       JMPIjvm::trace = 1;  
    else  
       JMPIjvm::trace = 0;  
 #else  
    JMPIjvm::trace = 0;  
 #endif  
   
    DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM()" << PEGASUS_STD(endl));  
  
    jv.initRc = 0;    jv.initRc = 0;
  
Line 357 
Line 623 
    {    {
       jv.initRc = 1;       jv.initRc = 1;
  
       DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): No CLASSPATH environment variable found" << PEGASUS_STD(endl));        PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL1,
             "No CLASSPATH environment variable found.");
   
         PEG_METHOD_EXIT();
  
       throw PEGASUS_CIM_EXCEPTION_L(       throw PEGASUS_CIM_EXCEPTION_L(
                  CIM_ERR_FAILED,                  CIM_ERR_FAILED,
Line 372 
Line 641 
 ///JNIoptions.append ("-Djava.compiler=NONE"); ///JNIoptions.append ("-Djava.compiler=NONE");
 ///maxoption++; ///maxoption++;
  
    for (Uint32 i = 0; i < (int)(sizeof (aEnvOptions)/sizeof (aEnvOptions[0])); i++)     unsigned int aEnvOptionsSize=sizeof(aEnvOptions)/sizeof(aEnvOptions[0]);
      for (Uint32 i = 0; i < aEnvOptionsSize; i++)
    {    {
       JVMOPTIONS *pEnvOption = &aEnvOptions[i];       JVMOPTIONS *pEnvOption = &aEnvOptions[i];
  
Line 389 
Line 659 
             while (fCommaFound)             while (fCommaFound)
             {             {
                string            stringValue;                string            stringValue;
                string::size_type posComma    = stringValues.find (',', posStart);                 string::size_type posComma    = stringValues.find(',',
                                                                    posStart);
  
                if (posComma != string::npos)                if (posComma != string::npos)
                {                {
Line 403 
Line 674 
                   stringValue = stringValues.substr (posStart, posEnd - posStart + 1);                   stringValue = stringValues.substr (posStart, posEnd - posStart + 1);
                }                }
  
                DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): fCommaFound = " << fCommaFound << ", posStart = " << posStart << ", posComma = " << posComma << ", posEnd = " << posEnd << "" << PEGASUS_STD(endl));                 PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL3,
                      "fCommaFound = %d, posStart = %d, "
                          "posComma =  %d, posEnd = %d",
                      fCommaFound,posStart,posComma,posEnd));
  
                maxoption++;                maxoption++;
  
Line 412 
Line 686 
  
                JNIoptions.append (oss.str ());                JNIoptions.append (oss.str ());
  
                DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): " << pEnvOption->pszEnvName << " found!  Specifying \"" << oss.str () << "\"" << PEGASUS_STD(endl));                 PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL3,
                      "%s found! Specifying \"%s\"",
                      pEnvOption->pszEnvName, (const char*)oss.str().c_str()));
             }             }
          }          }
          else          else
Line 424 
Line 700 
  
             JNIoptions.append (oss.str ());             JNIoptions.append (oss.str ());
  
             DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): " << pEnvOption->pszEnvName << " found!  Specifying \"" << oss.str () << "\"" << PEGASUS_STD(endl));              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                   "%s found! Specifying \"%s\"",
                   pEnvOption->pszEnvName, (const char*)oss.str().c_str()));
   
          }          }
       }       }
    }    }
Line 434 
Line 713 
    {    {
       jv.initRc = 1;       jv.initRc = 1;
  
       DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Could not allocate " << maxoption << " structures of size " << sizeof (JavaVMOption) << PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL2,
             "Could not allocate %d structures of size %d.",
             maxoption,sizeof (JavaVMOption)));
  
         PEG_METHOD_EXIT();
       return -1;       return -1;
    }    }
  
Line 443 
Line 725 
    {    {
       poptions[i].optionString = (char *)JNIoptions[i].c_str ();       poptions[i].optionString = (char *)JNIoptions[i].c_str ();
  
       DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): Setting option " << i << " to \"" << poptions[i].optionString << "\"" << PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL3,
             "Setting option %d to \"%s\".",
             i ,poptions[i].optionString));
    }    }
  
    vm_args.version = JNI_VERSION_1_2;    vm_args.version = JNI_VERSION_1_2;
Line 462 
Line 746 
    {    {
       jv.initRc = 1;       jv.initRc = 1;
  
       DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Can not create Java VM"<<PEGASUS_STD(endl));        PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL3,
             "Can not create Java VM !");
  
         PEG_METHOD_EXIT();
       return -1;       return -1;
    }    }
  
Line 486 
Line 772 
       jvm = NULL;       jvm = NULL;
 #endif #endif
  
         PEG_METHOD_EXIT();
       return -1;       return -1;
    }    }
  
    jv.initRc = 1;    jv.initRc = 1;
    jv.jvm = jvm;    jv.jvm = jvm;
  
      PEG_METHOD_EXIT();
    return res;    return res;
 } }
  
Line 526 
Line 814 
                               const char *pszProviderName,                               const char *pszProviderName,
                               jclass     *pjClass)                               jclass     *pjClass)
 { {
      PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::getProvider");
   
    jobject   jProviderInstance      = 0;    jobject   jProviderInstance      = 0;
    jclass    jClassLoaded           = 0;    jclass    jClassLoaded           = 0;
    jmethodID jId                    = 0;    jmethodID jId                    = 0;
    jobject   jProviderInstanceLocal = 0;    jobject   jProviderInstanceLocal = 0;
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jarName = "<<jarName<<", className = "<<className<<", pszProviderName = "<<pszProviderName<<", pjClass = "<<PEGASUS_STD(hex)<<(long)pjClass<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
          "jarName = %s, className = %s, pszProviderName = %s, pjClass = %p",
          (const char*)jarName.getCString(),
          (const char*)className.getCString(),
          pszProviderName,pjClass));
  
    // CASE #1    // CASE #1
    //    className has been loaded previously.    //    className has been loaded previously.
Line 539 
Line 833 
    _objectTable.lookup (className, jProviderInstance);    _objectTable.lookup (className, jProviderInstance);
    _classTable.lookup (className, jClassLoaded);    _classTable.lookup (className, jClassLoaded);
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstance = "<<PEGASUS_STD(hex)<<(long)jProviderInstance<<", jClassLoaded = "<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
          "jProviderInstance = %p, jClassLoaded = %p",
          jProviderInstance,jClassLoaded));
  
    if (  jProviderInstance    if (  jProviderInstance
       && jClassLoaded       && jClassLoaded
Line 549 
Line 845 
       {       {
          *pjClass = jClassLoaded;          *pjClass = jClassLoaded;
       }       }
         PEG_METHOD_EXIT();
       return jProviderInstance;       return jProviderInstance;
    }    }
  
Line 557 
Line 853 
    //    className can be loaded via getGlobalClassRef ().    //    className can be loaded via getGlobalClassRef ().
    //    Load and return the instance.    //    Load and return the instance.
    // NOTE:    // NOTE:
    //    According to http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/functions.html     //    According to
      //        http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/functions.html
    //    In JDK 1.1, FindClass searched only local classes in CLASSPATH.    //    In JDK 1.1, FindClass searched only local classes in CLASSPATH.
  
    jClassLoaded = getGlobalClassRef (env,    jClassLoaded = getGlobalClassRef (env,
                                      (const char*)className.getCString ());                                      (const char*)className.getCString ());
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoaded = "<<PEGASUS_STD(hex)<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
          "jClassLoaded = %p",jClassLoaded));
  
    if (env->ExceptionCheck ())    if (env->ExceptionCheck ())
    {    {
Line 592 
Line 890 
          fixedClassName = className;          fixedClassName = className;
       }       }
  
       DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: fixedClassName = "<<fixedClassName<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "fixedClassName = %s",(const char*)fixedClassName.getCString()));
  
       jJarName   = env->NewStringUTF ((const char*)jarName.getCString ());       jJarName   = env->NewStringUTF ((const char*)jarName.getCString ());
       jClassName = env->NewStringUTF ((const char*)fixedClassName.getCString ());       jClassName = env->NewStringUTF ((const char*)fixedClassName.getCString ());
  
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jJarName = "<<PEGASUS_STD(hex)<<(long)jJarName<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassName = "<<PEGASUS_STD(hex)<<(long)jClassName<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));            "jJarName = %p, jClassName = %p",
             jJarName,jClassName));
  
       jClassLoadedLocal = (jclass)env->CallStaticObjectMethod (JMPIjvm::jv.JarClassLoaderClassRef,        jClassLoadedLocal = (jclass)env->CallStaticObjectMethod(
                                 JMPIjvm::jv.JarClassLoaderClassRef,
                                                                JMPIjvm::jv.JarClassLoaderLoad,                                                                JMPIjvm::jv.JarClassLoaderLoad,
                                                                jJarName,                                                                jJarName,
                                                                jClassName);                                                                jClassName);
  
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoadedLocal = "<<PEGASUS_STD(hex)<<(long)jClassLoadedLocal<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "jClassLoadedLocal = %p",jClassLoadedLocal));
  
       if (env->ExceptionCheck ())       if (env->ExceptionCheck ())
       {       {
          DDD (env->ExceptionDescribe ());           env->ExceptionDescribe();
  
          DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
                 "Unable to instantiate provider %s: "
                 "Can not load Java class %s from jar %s.",
                 pszProviderName,
                 (const char*)fixedClassName.getCString(),
                 (const char*)jarName.getCString()));
  
            PEG_METHOD_EXIT();
          return 0;          return 0;
       }       }
  
       jClassLoaded = (jclass)env->NewGlobalRef (jClassLoadedLocal);       jClassLoaded = (jclass)env->NewGlobalRef (jClassLoadedLocal);
  
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoaded = "<<PEGASUS_STD(hex)<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "jClassLoaded = %p",jClassLoaded));
  
       env->DeleteLocalRef (jClassLoadedLocal);       env->DeleteLocalRef (jClassLoadedLocal);
    }    }
Line 630 
Line 939 
  
    if (!jClassLoaded)    if (!jClassLoaded)
    {    {
       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
              "Unable to instantiate provider %s: "
              "Can not load Java class.",pszProviderName));
         PEG_METHOD_EXIT();
       return 0;       return 0;
    }    }
  
    jId = env->GetMethodID (jClassLoaded,     jId = env->GetMethodID (jClassLoaded,"<init>","()V");
                            "<init>",  
                            "()V");  
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jId = "<<PEGASUS_STD(hex)<<(long)jId<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "GetMethodID() jID = %p ",jId));
  
    jProviderInstanceLocal = env->NewObject (jClassLoaded,    jProviderInstanceLocal = env->NewObject (jClassLoaded,
                                             jId);                                             jId);
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstanceLocal = "<<PEGASUS_STD(hex)<<(long)jProviderInstanceLocal<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "NewObject() jProviderInstanceLocal = %p ",
           jProviderInstanceLocal));
  
    if (!jProviderInstanceLocal)    if (!jProviderInstanceLocal)
    {    {
       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
              "Unable to instantiate provider %s: "
              "No new Java object of provider.",pszProviderName));
         PEG_METHOD_EXIT();
       return 0;       return 0;
    }    }
  
    jProviderInstance = (jobject)env->NewGlobalRef (jProviderInstanceLocal);    jProviderInstance = (jobject)env->NewGlobalRef (jProviderInstanceLocal);
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstance = "<<PEGASUS_STD(hex)<<(long)jProviderInstance<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "NewGlobalRef() jProviderInstance = %p ",jProviderInstance));
  
    if (!jProviderInstance)    if (!jProviderInstance)
    {    {
       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));         PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
               "Unable to instantiate provider %s: "
               "No global reference to provider object.",pszProviderName));
         PEG_METHOD_EXIT();
       return 0;       return 0;
    }    }
  
    _classTable.insert (className, jClassLoaded);    _classTable.insert (className, jClassLoaded);
    _objectTable.insert (className, jProviderInstance);    _objectTable.insert (className, jProviderInstance);
  
      PEG_METHOD_EXIT();
    return jProviderInstance;    return jProviderInstance;
 } }
  
Line 676 
Line 994 
    jobject gProv = NULL;    jobject gProv = NULL;
    jclass scls = NULL;    jclass scls = NULL;
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::getProvider");
   
      PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "cn = %s, cls = %p",cn,cls));
  
    _objectTable.lookup(cln,gProv);    _objectTable.lookup(cln,gProv);
    _classTable.lookup(cln,scls);    _classTable.lookup(cln,scls);
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(long)gProv<<", scls = "<<(long)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));  
      PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "gProv = %p, scls = %p",gProv,scls));
  
    if (gProv)    if (gProv)
    {    {
Line 691 
Line 1014 
    scls = getGlobalClassRef(env,cn);    scls = getGlobalClassRef(env,cn);
    if (env->ExceptionCheck())    if (env->ExceptionCheck())
    {    {
       DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: Provider "<<cn<<" not found"<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
       DDD(env->ExceptionDescribe());             "Provider %s not found: No global reference.",cn));
         PEG_METHOD_EXIT();
       return NULL;       return NULL;
    }    }
    *cls = scls;    *cls = scls;
  
    if (scls)    if (scls)
    {    {
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: scls = "<<PEGASUS_STD(hex)<<(long)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));         PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Inserting global reference %p into class table.",scls));
       _classTable.insert(cln,scls);       _classTable.insert(cln,scls);
    }    }
  
Line 709 
Line 1033 
    gProv = (jobject)env->NewGlobalRef(lProv);    gProv = (jobject)env->NewGlobalRef(lProv);
    if (env->ExceptionCheck())    if (env->ExceptionCheck())
    {    {
       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
              "Unable to instantiate provider %s.",cn));
         PEG_METHOD_EXIT();
       return NULL;       return NULL;
    }    }
  
    if (gProv)    if (gProv)
    {    {
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(long)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
              "Inserting provider reference %p into object table.",gProv));
       _objectTable.insert(cln,gProv);       _objectTable.insert(cln,gProv);
    }    }
  
      PEG_METHOD_EXIT();
    return gProv;    return gProv;
 } }
  
Line 731 
Line 1059 
 ///*37*/ "java/lang/StackTraceElement" ///*37*/ "java/lang/StackTraceElement"
 // add to: // add to:
 // const METHOD_STRUCT instanceMethodNames[]={ // const METHOD_STRUCT instanceMethodNames[]={
 ///*57 ThrowableGetStackTrace         */ { /*Throwable        */21, "getStackTrace",   "()Ljava/lang/StackTraceElement;" },  ///*57 ThrowableGetStackTrace         */ { /*Throwable        */
 ///*58 StackTraceElementGetClassName  */ { /*StackTraceElement*/37, "getClassName",    "()Ljava/lang/String;" },  ///21, "getStackTrace",   "()Ljava/lang/StackTraceElement;" },
 ///*59 StackTraceElementGetFileName   */ { /*StackTraceElement*/37, "getFileName",     "()Ljava/lang/String;" },  ///*58 StackTraceElementGetClassName  */ { /*StackTraceElement*/
 ///*60 StackTraceElementGetLineNumber */ { /*StackTraceElement*/37, "getLineNumber",   "()I" },  ///37, "getClassName",    "()Ljava/lang/String;" },
 ///*61 StackTraceElementGetMethodName */ { /*StackTraceElement*/37, "getMethodName",   "()Ljava/lang/String;" }  ///*59 StackTraceElementGetFileName   */ { /*StackTraceElement*/
   ///37, "getFileName",     "()Ljava/lang/String;" },
   ///*60 StackTraceElementGetLineNumber */ { /*StackTraceElement*/
   ///37, "getLineNumber",   "()I" },
   ///*61 StackTraceElementGetMethodName */ { /*StackTraceElement*/
   ///37, "getMethodName",   "()Ljava/lang/String;" }
  
 String getExceptionInfo (JNIEnv *env) String getExceptionInfo (JNIEnv *env)
 { {
Line 743 
Line 1076 
    jobjectArray stackTrace = 0;    jobjectArray stackTrace = 0;
    String       rc;    String       rc;
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: err = "     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"getExceptionInfo");
                            << PEGASUS_STD (hex)  
                            << (jlong)err     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            << PEGASUS_STD (dec)          "err =  %ld ",(long)(jlong)err));
                            << PEGASUS_STD (endl));  
  
    if (!err)    if (!err)
      {
          PEG_METHOD_EXIT();
       return rc;       return rc;
      }
   
  
    stackTrace = (jobjectArray)env->CallObjectMethod (err,     stackTrace = (jobjectArray)env->CallObjectMethod(
                       err,
                                                      JMPIjvm::jv.ThrowableGetStackTrace);                                                      JMPIjvm::jv.ThrowableGetStackTrace);
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: stackTrace = "     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            << PEGASUS_STD (hex)          "stackTrace =  %p ",stackTrace));
                            << (jlong)stackTrace  
                            << PEGASUS_STD (dec)  
                            << PEGASUS_STD (endl));  
  
    if (!stackTrace)    if (!stackTrace)
      {
          PEG_METHOD_EXIT();
       return rc;       return rc;
      }
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: stackTrace length = "     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            << env->GetArrayLength (stackTrace)          "stackTrace length =  %d",(jlong)env->GetArrayLength(stackTrace)));
                            << PEGASUS_STD (endl));  
  
    jobject jFirstST = 0;    jobject jFirstST = 0;
    jstring jClass   = 0;    jstring jClass   = 0;
Line 776 
Line 1112 
  
    jFirstST = env->GetObjectArrayElement (stackTrace, 0);    jFirstST = env->GetObjectArrayElement (stackTrace, 0);
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: jFirstST = "     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            << PEGASUS_STD (hex)          "jFirstST = %p",jFirstST));
                            << (jlong)jFirstST  
                            << PEGASUS_STD (dec)  
                            << PEGASUS_STD (endl));  
  
    if (!jFirstST)    if (!jFirstST)
      {
          PEG_METHOD_EXIT();
       return rc;       return rc;
      }
  
    jClass  = (jstring)env->CallObjectMethod (jFirstST,     jClass  = (jstring)env->CallObjectMethod(
                    jFirstST,
                                              JMPIjvm::jv.StackTraceElementGetClassName);                                              JMPIjvm::jv.StackTraceElementGetClassName);
    jFile   = (jstring)env->CallObjectMethod (jFirstST,     jFile   = (jstring)env->CallObjectMethod(
                    jFirstST,
                                              JMPIjvm::jv.StackTraceElementGetFileName);                                              JMPIjvm::jv.StackTraceElementGetFileName);
    jMethod = (jstring)env->CallObjectMethod (jFirstST,     jMethod = (jstring)env->CallObjectMethod(
                    jFirstST,
                                              JMPIjvm::jv.StackTraceElementGetMethodName);                                              JMPIjvm::jv.StackTraceElementGetMethodName);
    jLine   = env->CallIntMethod (jFirstST,     jLine   = env->CallIntMethod(
                    jFirstST,
                                  JMPIjvm::jv.StackTraceElementGetLineNumber);                                  JMPIjvm::jv.StackTraceElementGetLineNumber);
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: jClass = "     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            << PEGASUS_STD (hex)         "jClass = %p, jFile = %p, jMethod = %p, jLine = %p",
                            << (jlong)jClass         jClass,jFile,jMethod,jLine));
                            << ", jFile = "  
                            << (jlong)jFile  
                            << ", jMethod = "  
                            << (jlong)jMethod  
                            << ", jLine = "  
                            << jLine  
                            << PEGASUS_STD (dec)  
                            << PEGASUS_STD (endl));  
  
    const char *pszClass  = 0;    const char *pszClass  = 0;
    const char *pszFile   = 0;    const char *pszFile   = 0;
Line 840 
Line 1172 
       env->ReleaseStringUTFChars (jMethod, pszMethod);       env->ReleaseStringUTFChars (jMethod, pszMethod);
    }    }
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: oss = "     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            << oss.str ()          "oss = %s",(const char*)oss.str().c_str()));
                            << PEGASUS_STD (endl));  
  
    rc = oss.str ().c_str ();    rc = oss.str ().c_str ();
  
Line 856 
Line 1187 
    jthrowable err = env->ExceptionOccurred ();    jthrowable err = env->ExceptionOccurred ();
    String     rc;    String     rc;
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: err = "     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"getExceptionInfo");
                            << PEGASUS_STD (hex)  
                            << (jlong)err     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            << PEGASUS_STD (dec)          "err =  %ld ",(long)(jlong)err));
                            << PEGASUS_STD (endl));  
  
    if (!err)    if (!err)
      {
          PEG_METHOD_EXIT();
       return rc;       return rc;
      }
   
  
    // ByteArrayOutputStream baos = new ByteArrayOutputStream ();    // ByteArrayOutputStream baos = new ByteArrayOutputStream ();
    // PrintStream           ps   = new PrintStream (baos);    // PrintStream           ps   = new PrintStream (baos);
Line 876 
Line 1210 
    jBAOS = env->NewObject (JMPIjvm::jv.ByteArrayOutputStreamClassRef,    jBAOS = env->NewObject (JMPIjvm::jv.ByteArrayOutputStreamClassRef,
                            JMPIjvm::jv.ByteArrayOutputStreamNew);                            JMPIjvm::jv.ByteArrayOutputStreamNew);
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: jBAOS = "     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, "jBAOS = %p ",jBAOS));
                            << PEGASUS_STD (hex)  
                            << (jlong)jBAOS  
                            << PEGASUS_STD (dec)  
                            << PEGASUS_STD (endl));  
  
    if (!jBAOS)    if (!jBAOS)
    {    {
       DDD(env->ExceptionDescribe ());        env->ExceptionDescribe ();
  
         PEG_METHOD_EXIT();
       return rc;       return rc;
    }    }
  
Line 893 
Line 1224 
                          JMPIjvm::jv.PrintStreamNewOb,                          JMPIjvm::jv.PrintStreamNewOb,
                          jBAOS);                          jBAOS);
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: jPS = "     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, "jPS = %p ",jPS));
                            << PEGASUS_STD (hex)  
                            << (jlong)jPS  
                            << PEGASUS_STD (dec)  
                            << PEGASUS_STD (endl));  
  
    if (!jPS)    if (!jPS)
      {
          PEG_METHOD_EXIT();
       return rc;       return rc;
      }
  
    env->CallVoidMethod (err,    env->CallVoidMethod (err,
                         JMPIjvm::jv.ThrowablePrintStackTrace,                         JMPIjvm::jv.ThrowablePrintStackTrace,
Line 908 
Line 1238 
  
    jstring jST = 0;    jstring jST = 0;
  
    jST = (jstring)env->CallObjectMethod (jBAOS,     jST = (jstring)env->CallObjectMethod(
                jBAOS,
                                          JMPIjvm::jv.ByteArrayOutputStreamToString);                                          JMPIjvm::jv.ByteArrayOutputStreamToString);
  
    DDD (PEGASUS_STD (cerr) << "getExceptionInfo: jST = "     PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,"jST = %p ",jST));
                            << PEGASUS_STD (hex)  
                            << (jlong)jST  
                            << PEGASUS_STD (dec)  
                            << PEGASUS_STD (endl));  
  
    const char *pszST = 0;    const char *pszST = 0;
  
Line 923 
Line 1250 
  
    if (pszST)    if (pszST)
    {    {
       DDD (PEGASUS_STD (cerr) << "getExceptionInfo: pszST = "        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                               << pszST             "pszST = %s ",pszST));
                               << PEGASUS_STD (endl));  
  
       rc = pszST;       rc = pszST;
  
       env->ReleaseStringUTFChars (jST, pszST);       env->ReleaseStringUTFChars (jST, pszST);
    }    }
  
      PEG_METHOD_EXIT();
    return rc;    return rc;
 } }
  
Line 939 
Line 1266 
  
 void JMPIjvm::checkException (JNIEnv *env) void JMPIjvm::checkException (JNIEnv *env)
 { {
      PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::checkException");
   
    if (!env->ExceptionCheck ())    if (!env->ExceptionCheck ())
      {
          PEG_METHOD_EXIT();
       return;       return;
      }
  
    jstring     jMsg = NULL,    jstring     jMsg = NULL,
                jId  = NULL;                jId  = NULL;
Line 950 
Line 1282 
    String      id;    String      id;
    jthrowable  err  = env->ExceptionOccurred ();    jthrowable  err  = env->ExceptionOccurred ();
  
 ///DDD (PEGASUS_STD (cerr) << "JMPIjvm::checkException: err = "  //   PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
 ///                        << PEGASUS_STD (hex)  //        "err =  %ld ",(long)(jlong)err));
 ///                        << (jlong)err  
 ///                        << PEGASUS_STD (dec)  
 ///                        << PEGASUS_STD (endl));  
  
    if (!err)    if (!err)
      {
          PEG_METHOD_EXIT();
       return;       return;
      }
  
    DDD(PEGASUS_STD(cerr)<<"--- Provider caused an exception!"<<PEGASUS_STD(endl));     PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL1,
           "Provider caused an exception!");
  
    DDD(env->ExceptionDescribe ());     env->ExceptionDescribe ();
  
    if (env->IsInstanceOf (err, JMPIjvm::jv.CIMExceptionClassRef))    if (env->IsInstanceOf (err, JMPIjvm::jv.CIMExceptionClassRef))
    {    {
       env->ExceptionClear ();       env->ExceptionClear ();
  
       jMsg = (jstring)env->CallObjectMethod (err, JMPIjvm::jv.ThrowableGetMessage);        jMsg = (jstring)env->CallObjectMethod(
       code = (int)env->CallIntMethod (err, JMPIjvm::jv.CIMExceptionGetCode);                   err,
       jId  = (jstring)env->CallObjectMethod (err, JMPIjvm::jv.CIMExceptionGetID);                   JMPIjvm::jv.ThrowableGetMessage);
         code = (int)env->CallIntMethod(
                    err,
                    JMPIjvm::jv.CIMExceptionGetCode);
         jId  = (jstring)env->CallObjectMethod(
                    err,
                    JMPIjvm::jv.CIMExceptionGetID);
  
       if (jId)       if (jId)
       {       {
Line 985 
Line 1324 
          env->ReleaseStringUTFChars (jMsg, cp);          env->ReleaseStringUTFChars (jMsg, cp);
       }       }
  
       DDD(PEGASUS_STD(cerr)<<"--- throwing Pegasus exception: "<<code<<" "<<id<<" ("<<msg<<")"<<PEGASUS_STD(endl));        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
              "throwing Pegasus exception: %d %s (%s)",
              code,(const char*)id.getCString(),(const char*)msg.getCString()));
  
         PEG_METHOD_EXIT();
       throw CIMException ((CIMStatusCode)code, id+" ("+msg+")");       throw CIMException ((CIMStatusCode)code, id+" ("+msg+")");
    }    }
    else    else
Line 995 
Line 1337 
  
       env->ExceptionClear ();       env->ExceptionClear ();
  
       throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,        PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
              "Java caused an exception: %s",(const char*)info.getCString()));
   
         PEG_METHOD_EXIT();
   
         throw PEGASUS_CIM_EXCEPTION_L(
             CIM_ERR_FAILED,
                                      MessageLoaderParms (                                      MessageLoaderParms (
                                         "ProviderManager2.JMPI.JMPIImpl.JAVA_CAUSED_EXCEPTION.STANDARD",                                         "ProviderManager2.JMPI.JMPIImpl.JAVA_CAUSED_EXCEPTION.STANDARD",
                                         "Java caused an exception: $0",                                         "Java caused an exception: $0",
Line 1099 
Line 1447 
 void throwCimException (JNIEnv *jEnv, CIMException &e) void throwCimException (JNIEnv *jEnv, CIMException &e)
 { {
       JMPIjvm::cacheIDs(jEnv);       JMPIjvm::cacheIDs(jEnv);
       jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,(jint)e.getCode());        jobject ev = jEnv->NewObject(
             JMPIjvm::jv.CIMExceptionClassRef,
             JMPIjvm::jv.CIMExceptionNewI,
             (jint)e.getCode());
       jEnv->Throw((jthrowable)ev);       jEnv->Throw((jthrowable)ev);
 } }
  
 void throwFailedException (JNIEnv *jEnv) void throwFailedException (JNIEnv *jEnv)
 { {
       JMPIjvm::cacheIDs(jEnv);       JMPIjvm::cacheIDs(jEnv);
       jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,1);        jobject ev = jEnv->NewObject(
             JMPIjvm::jv.CIMExceptionClassRef,
             JMPIjvm::jv.CIMExceptionNewI,
             1);
       jEnv->Throw((jthrowable)ev);       jEnv->Throw((jthrowable)ev);
 } }
  
 void throwNotSupportedException (JNIEnv *jEnv) void throwNotSupportedException (JNIEnv *jEnv)
 { {
       JMPIjvm::cacheIDs(jEnv);       JMPIjvm::cacheIDs(jEnv);
       jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,7);        jobject ev = jEnv->NewObject(
             JMPIjvm::jv.CIMExceptionClassRef,
             JMPIjvm::jv.CIMExceptionNewI,
             7);
       jEnv->Throw((jthrowable)ev);       jEnv->Throw((jthrowable)ev);
 } }
  
Line 1259 
Line 1616 
  
          copNew.setNameSpace (cls->getPath ().getNameSpace ());          copNew.setNameSpace (cls->getPath ().getNameSpace ());
          ci->setPath (copNew);          ci->setPath (copNew);
   
          for (int i = 0, m = cls->getQualifierCount (); i < m; i++)          for (int i = 0, m = cls->getQualifierCount (); i < m; i++)
          {          {
             try             try
Line 1287 
Line 1643 
                }                }
             }             }
          }          }
   
          return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);          return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
       }       }
       Catch (jEnv);       Catch (jEnv);
Line 1297 
Line 1652 
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1filterProperties JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1filterProperties
       (JNIEnv *jEnv, jobject jThs, jlong jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)        (JNIEnv *jEnv,
          jobject jThs,
          jlong jInst,
          jobjectArray jPl,
          jboolean iq,
          jboolean ic,
          jboolean lo)
 { {
    CIMClass *cc   = DEBUG_ConvertJavaToC (jlong, CIMClass*, jInst);    CIMClass *cc   = DEBUG_ConvertJavaToC (jlong, CIMClass*, jInst);
    CIMClass *cf   = 0;    CIMClass *cf   = 0;
Line 1453 
Line 1814 
    {    {
       CIMQualifier *cq   = new CIMQualifier (cls->getQualifier (i));       CIMQualifier *cq   = new CIMQualifier (cls->getQualifier (i));
       jlong         jCq  = DEBUG_ConvertCToJava (CIMQualifier*, jlong, cq);       jlong         jCq  = DEBUG_ConvertCToJava (CIMQualifier*, jlong, cq);
       jobject       qual = jEnv->NewObject (JMPIjvm::jv.CIMQualifierClassRef,JMPIjvm::jv.CIMQualifierNewJ,jCq);        jobject       qual = jEnv->NewObject(
                                  JMPIjvm::jv.CIMQualifierClassRef,
                                  JMPIjvm::jv.CIMQualifierNewJ,
                                  jCq);
  
       jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,qual);       jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,qual);
    }    }
Line 1497 
Line 1861 
    {    {
       cls->removeProperty (i);       cls->removeProperty (i);
    }    }
    for (Uint32 i = 0, s = jEnv->CallIntMethod (jVec, JMPIjvm::jv.VectorSize); i < s; i++)     for (Uint32 i = 0, s = jEnv->CallIntMethod(
                                 jVec,
                                 JMPIjvm::jv.VectorSize); i < s; i++)
    {    {
       JMPIjvm::checkException (jEnv);       JMPIjvm::checkException (jEnv);
  
Line 1540 
Line 1906 
    {    {
       CIMProperty *cp   = new CIMProperty (cls->getProperty (i));       CIMProperty *cp   = new CIMProperty (cls->getProperty (i));
       jlong        jCp  = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);       jlong        jCp  = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
       jobject      prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);        jobject      prop = jEnv->NewObject(
                                 JMPIjvm::jv.CIMPropertyClassRef,
                                 JMPIjvm::jv.CIMPropertyNewJ,
                                 jCp);
  
       jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);       jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
    }    }
Line 1592 
Line 1961 
             CIMProperty *cp  = new CIMProperty (cls->getProperty (pos));             CIMProperty *cp  = new CIMProperty (cls->getProperty (pos));
             jlong        jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);             jlong        jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
  
             jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);              jobject prop = jEnv->NewObject(
                                  JMPIjvm::jv.CIMPropertyClassRef,
                                  JMPIjvm::jv.CIMPropertyNewJ,
                                  jCp);
  
             jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);             jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
          }          }
Line 1612 
Line 1984 
  
    if (pos != PEG_NOT_FOUND)    if (pos != PEG_NOT_FOUND)
    {    {
       rv = DEBUG_ConvertCToJava (CIMMethod*, jlong, new CIMMethod (cls->getMethod (pos)));        rv = DEBUG_ConvertCToJava(
                  CIMMethod*,
                  jlong,
                  new CIMMethod(cls->getMethod(pos)));
    }    }
  
    jEnv->ReleaseStringUTFChars (jN,str);    jEnv->ReleaseStringUTFChars (jN,str);
Line 1624 
Line 1999 
       (JNIEnv *jEnv, jobject jThs, jlong jCls, jlong jClsToBeCompared)       (JNIEnv *jEnv, jobject jThs, jlong jCls, jlong jClsToBeCompared)
 { {
    CIMClass *cls             = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);    CIMClass *cls             = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
    CIMClass *clsToBeCompared = DEBUG_ConvertJavaToC (jlong, CIMClass*, jClsToBeCompared);     CIMClass *clsToBeCompared = DEBUG_ConvertJavaToC(
                                      jlong,
                                      CIMClass*,
                                      jClsToBeCompared);
    bool      fRc             = false;    bool      fRc             = false;
  
    if (  cls     if (  cls && clsToBeCompared )
       && clsToBeCompared  
       )  
    {    {
       try       try
       {       {
Line 1798 
Line 2174 
  
    SSLContext *sslContext = 0; // initialized for unencrypted connection    SSLContext *sslContext = 0; // initialized for unencrypted connection
  
   #ifdef PEGASUS_HAS_SSL
    if (cNs->isHttps ())    if (cNs->isHttps ())
    {    {
       try       try
Line 1808 
Line 2185 
       }       }
       catch (Exception &e)       catch (Exception &e)
       {       {
         cerr << "JMPI: Error: could not create SSLContext: " << e.getMessage() << endl;          cerr << "JMPI: Error: could not create SSLContext: "
                << e.getMessage() << endl;
         return jCc;         return jCc;
       }       }
    }    }
   #endif
  
    try {    try {
       CIMClient *cc = new CIMClient ();       CIMClient *cc = new CIMClient ();
Line 2006 
Line 2385 
    Catch (jEnv);    Catch (jEnv);
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClasses  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClasses(
   (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo, jboolean iq, jboolean ic)      JNIEnv *jEnv,
       jobject jThs,
       jlong jCc,
       jlong jNs,
       jlong jCop,
       jboolean deep,
       jboolean lo,
       jboolean iq,
       jboolean ic)
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);    CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
Line 2022 
Line 2409 
                                                    (Boolean)iq,                                                    (Boolean)iq,
                                                    (Boolean)ic);                                                    (Boolean)ic);
  
       return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (enm));        return DEBUG_ConvertCToJava(
                    Array<CIMClass>*,
                    jlong,
                    new Array<CIMClass> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
Line 2065 
Line 2455 
    try {    try {
       checkNs (cop,jNs);       checkNs (cop,jNs);
  
       Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (),        Array<CIMObjectPath> enm = cCc->enumerateInstanceNames(
                                        cop->getNameSpace(),
                                                               cop->getClassName ()); //, (Boolean)deep);                                                               cop->getClassName ()); //, (Boolean)deep);
  
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));        return DEBUG_ConvertCToJava(
                    Array<CIMObjectPath>*,
                    jlong,
                    new Array<CIMObjectPath> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances(
   (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo,      JNIEnv *jEnv,
          jboolean iq, jboolean ic, jobjectArray jPl)      jobject jThs,
       jlong jCc,
       jlong jNs,
       jlong jCop,
       jboolean deep,
       jboolean lo,
       jboolean iq,
       jboolean ic,
       jobjectArray jPl)
 { {
    CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);    CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
Line 2094 
Line 2496 
                                                         (Boolean)iq,                                                         (Boolean)iq,
                                                         (Boolean)ic,pl);                                                         (Boolean)ic,pl);
  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (enm));        return DEBUG_ConvertCToJava(
                    Array<CIMInstance>*,
                    jlong,
                    new Array<CIMInstance> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
Line 2112 
Line 2517 
  
       Array<CIMQualifierDecl> enm = cCc->enumerateQualifiers (cop->getNameSpace ());       Array<CIMQualifierDecl> enm = cCc->enumerateQualifiers (cop->getNameSpace ());
  
       return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jlong, new Array<CIMQualifierDecl> (enm));        return DEBUG_ConvertCToJava(
                    Array<CIMQualifierDecl>*,
                    jlong,
                    new Array<CIMQualifierDecl> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
Line 2128 
Line 2536 
    try {    try {
       checkNs (cop,jNs);       checkNs (cop,jNs);
  
       CIMQualifierDecl *val = new CIMQualifierDecl (cCc->getQualifier (cop->getNameSpace (),        CIMQualifierDecl *val = new CIMQualifierDecl(
                                         cCc->getQualifier(
                                             cop->getNameSpace (),
                                                                        cop->getClassName ()));                                                                        cop->getClassName ()));
  
       return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, val);       return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, val);
Line 2179 
Line 2589 
    try {    try {
       checkNs (cop, jNs);       checkNs (cop, jNs);
  
       CIMValue *val = new CIMValue (cCc->getProperty (cop->getNameSpace (), *cop, pName));        CIMValue *val = new CIMValue(cCc->getProperty(
                                               cop->getNameSpace(),
                                               *cop,
                                               pName));
  
       jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);       jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
    }    }
Line 2190 
Line 2603 
    return jCv;    return jCv;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty(
   (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jPn, jlong jV)      JNIEnv *jEnv,
       jobject jThs,
       jlong jCc,
       jlong jNs,
       jlong jCop,
       jstring jPn,
       jlong jV)
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);    CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
Line 2209 
Line 2628 
    jEnv->ReleaseStringUTFChars (jPn, str);    jEnv->ReleaseStringUTFChars (jPn, str);
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery(
   (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jQuery, jstring jQl)      JNIEnv *jEnv,
       jobject jThs,
       jlong jCc,
       jlong jNs,
       jlong jCop,
       jstring jQuery,
       jstring jQl)
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);    CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    const char    *str = jEnv->GetStringUTFChars (jQuery, NULL);    const char    *str = jEnv->GetStringUTFChars (jQuery, NULL);
    String         query (str);    String         query (str);
  
 /* @NOTE  
 ** This does not work for some reason on the client java code:  
 **   DDD (PEGASUS_STD (cout)<<"--- JMPIjvm::Java_org_pegasus_jmpi_CIMClient__1execQuery: jEnv = "<<PEGASUS_STD (hex)<< (long)jEnv<<", jThs = "<< (long)jThs<<PEGASUS_STD (dec)<<", jCc = "<<jCc<<", jNs = "<<jNs<<", jCop = "<<jCop<<", jQuery = "<<PEGASUS_STD (hex)<< (long)jQuery<<", jQl = "<< (long)jQl<<PEGASUS_STD (dec)<<PEGASUS_STD (endl));  
 ** What does work is:  
 **   printf ("This is a test\n");  
 **  
 ** To debug these JNI functions insert the following:  
 **    if (getenv ("PEGASUS_JMPI_GDB"))  
 **    {  
 **       bool fLoop = true;  
 **       int  i     = 0;  
 **  
 **       while (fLoop)  
 **       {  
 **          i = 1;  
 **       }  
 **    }  
 ** Export the variable PEGASUS_JMPI_GDB = 1.  
 ** Start gdb in another process.  
 **    shell ps -efl  
 **    att <ps number>  
 **    set fLoop = 0  
 */  
   
    jEnv->ReleaseStringUTFChars (jQuery, str);    jEnv->ReleaseStringUTFChars (jQuery, str);
  
    str = jEnv->GetStringUTFChars (jQl, NULL);    str = jEnv->GetStringUTFChars (jQl, NULL);
Line 2269 
Line 2670 
    return 0;    return 0;
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod(
   (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jMn, jobject jIn, jobject jOut)      JNIEnv *jEnv,
       jobject jThs,
       jlong jCc,
       jlong jNs,
       jlong jCop,
       jstring jMn,
       jobject jIn,
       jobject jOut)
 { {
    JMPIjvm::cacheIDs (jEnv);    JMPIjvm::cacheIDs (jEnv);
  
Line 2301 
Line 2709 
    try {    try {
       checkNs (cop, jNs);       checkNs (cop, jNs);
  
       CIMValue *val = new CIMValue (cCc->invokeMethod (cop->getNameSpace (),*cop,method,in,out));        CIMValue *val = new CIMValue(
                                 cCc->invokeMethod(
                                          cop->getNameSpace(),
                                          *cop,
                                          method,
                                          in,
                                          out));
  
       for (int i = 0,m = out.size (); i<m; i++)       for (int i = 0,m = out.size (); i<m; i++)
       {       {
          const CIMParamValue &parm = out[i];          const CIMParamValue &parm = out[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());
          jlong                jp   = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);          jlong                jp   = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
          jobject              prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jp);           jobject prop = jEnv->NewObject(
                               JMPIjvm::jv.CIMPropertyClassRef,
                               JMPIjvm::jv.CIMPropertyNewJ,
                               jp);
  
          jEnv->CallVoidMethod (jOut,JMPIjvm::jv.VectorAddElement,prop);          jEnv->CallVoidMethod (jOut,JMPIjvm::jv.VectorAddElement,prop);
       }       }
Line 2371 
Line 2791 
             CIMParamValue *parm  = new CIMParamValue (out[i]);             CIMParamValue *parm  = new CIMParamValue (out[i]);
             jlong          jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);             jlong          jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);
  
             jEnv->SetObjectArrayElement (jOut,              jEnv->SetObjectArrayElement(
                   jOut,
                                         i,                                         i,
                                         jEnv->NewObject (JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewJ,jParm));                  jEnv->NewObject(
                       JMPIjvm::jv.CIMArgumentClassRef,
                       JMPIjvm::jv.CIMArgumentNewJ,
                       jParm));
          }          }
       }       }
       jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);       jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
Line 2385 
Line 2809 
    return jCv;    return jCv;
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associatorNames  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associatorNames(
   (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,      JNIEnv *jEnv,
    jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)      jobject jThs,
       jlong jCc,
       jlong jNs,
       jlong jCop,
       jstring jAssocClass,
       jstring jResultClass,
       jstring jRole,
       jstring jResultRole)
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);    CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
Line 2405 
Line 2836 
       }       }
       else       else
       {       {
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,           jobject ev = jEnv->NewObject(
                                   JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid association class name"));                                  jEnv->NewStringUTF(
                                       "Invalid association class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 2435 
Line 2868 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid result class name"));                                         jEnv->NewStringUTF(
                                              "Invalid result class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 2466 
Line 2900 
                                                       resultClass,                                                       resultClass,
                                                       role,                                                       role,
                                                       resultRole);                                                       resultRole);
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));        return DEBUG_ConvertCToJava(
             Array<CIMObjectPath>*,
             jlong,
             new Array<CIMObjectPath> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associators  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associators(
   (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,      JNIEnv *jEnv,
    jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,      jobject jThs,
    jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)      jlong jCc,
       jlong jNs,
       jlong jCop,
       jstring jAssocClass,
       jstring jResultClass,
       jstring jRole,
       jstring jResultRole,
       jboolean includeQualifiers,
       jboolean includeClassOrigin,
       jobjectArray jPl)
 { {
    CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);    CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
Line 2498 
Line 2944 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid association class name"));                                         jEnv->NewStringUTF(
                                              "Invalid association class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 2525 
Line 2972 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid result class name"));                                         jEnv->NewStringUTF(
                                              "Invalid result class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 2596 
Line 3044 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid association class name"));                                         jEnv->NewStringUTF(
                                              "Invalid association class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 2620 
Line 3069 
                                                       assocClass,                                                       assocClass,
                                                       role);                                                       role);
  
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));        return DEBUG_ConvertCToJava(
             Array<CIMObjectPath>*,
             jlong,
             new Array<CIMObjectPath> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
Line 2652 
Line 3104 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid association class name"));                                         jEnv->NewStringUTF(
                                              "Invalid association class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 2706 
Line 3159 
    normalizeNs (ns, nsBase, lastNsComp);    normalizeNs (ns, nsBase, lastNsComp);
  
    CIMInstance newInstance (CIMName ("__Namespace"));    CIMInstance newInstance (CIMName ("__Namespace"));
    newInstance.addProperty (CIMProperty (CIMName ("name"), lastNsComp));     newInstance.addProperty(CIMProperty(PEGASUS_PROPERTYNAME_NAME, lastNsComp));
  
    try {    try {
       cCc->createInstance (CIMNamespaceName (nsBase), newInstance);       cCc->createInstance (CIMNamespaceName (nsBase), newInstance);
Line 2714 
Line 3167 
    Catch (jEnv);    Catch (jEnv);
 } }
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateNameSpaces  JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateNameSpaces(
   (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jCop, jboolean deep, jobject jVec)      JNIEnv *jEnv,
       jobject jThs,
       jlong jCc,
       jlong jCop,
       jboolean deep,
       jobject jVec)
 { {
    JMPIjvm::cacheIDs (jEnv);    JMPIjvm::cacheIDs (jEnv);
  
Line 2724 
Line 3182 
    String         ns  = cop->getNameSpace ().getString ();    String         ns  = cop->getNameSpace ().getString ();
  
    try {    try {
       Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (),        Array<CIMObjectPath> enm = cCc->enumerateInstanceNames(
                                             cop->getNameSpace(),
                                                               CIMName ("__Namespace"));                                                               CIMName ("__Namespace"));
  
       for (int i = 0, s = enm.size (); i < s; i++)       for (int i = 0, s = enm.size (); i < s; i++)
Line 2766 
Line 3225 
                              CIMName ("__Namespace"));                              CIMName ("__Namespace"));
    Array<CIMKeyBinding> kb;    Array<CIMKeyBinding> kb;
  
    kb.append (CIMKeyBinding (("Name"),CIMValue (lastNsComp)));     kb.append (CIMKeyBinding (PEGASUS_PROPERTYNAME_NAME,CIMValue (lastNsComp)));
    cop.setKeyBindings (kb);    cop.setKeyBindings (kb);
  
    try {    try {
Line 2808 
Line 3267 
   (JNIEnv *jEnv, jobject jThs, jint type, jstring jRef)   (JNIEnv *jEnv, jobject jThs, jint type, jstring jRef)
 { {
    const char *ref   = jEnv->GetStringUTFChars (jRef,NULL);    const char *ref   = jEnv->GetStringUTFChars (jRef,NULL);
    jlong       cInst = DEBUG_ConvertCToJava (_dataType*, jlong, new _dataType (type,String (ref)));     jlong cInst = DEBUG_ConvertCToJava(
                        _dataType*,
                        jlong,
                        new _dataType(type,String (ref)));
  
    jEnv->ReleaseStringUTFChars (jRef,ref);    jEnv->ReleaseStringUTFChars (jRef,ref);
  
Line 3046 
Line 3508 
    return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);    return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1filterProperties  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1filterProperties(
       (JNIEnv *jEnv, jobject jThs, jlong jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)      JNIEnv *jEnv,
       jobject jThs,
       jlong jInst,
       jobjectArray jPl,
       jboolean iq,
       jboolean ic,
       jboolean lo)
 { {
    CIMInstance *ci   = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);    CIMInstance *ci   = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    CIMInstance *cf   = 0;    CIMInstance *cf   = 0;
Line 3190 
Line 3658 
             }             }
             else             else
             {             {
                throw CIMException (CIM_ERR_TYPE_MISMATCH, String ("Property type mismatch"));                 throw CIMException(
                            CIM_ERR_TYPE_MISMATCH,
                            String ("Property type mismatch"));
             }             }
  
             ci->removeProperty (pos);             ci->removeProperty (pos);
Line 3198 
Line 3668 
          }          }
          else          else
          {          {
             CIMProperty *cp = new CIMProperty (CIMName (str), *cv);              CIMProperty *cp;
   
               if (cv->getType() != CIMTYPE_REFERENCE)
               {
                  cp = new CIMProperty (CIMName (str), *cv);
               }
               else
               {
                  if (!cv->isArray ())
                  {
                     CIMObjectPath cop;
   
                     cv->get (cop);
                     cp = new CIMProperty(CIMName(str),*cv,0,cop.getClassName());
                  }
                  else
                  {
                     throwCIMException(
                         jEnv,
                         "+++ unsupported type in CIMProperty.property");
                  }
               }
  
             ci->addProperty (*cp);             ci->addProperty (*cp);
          }          }
Line 3234 
Line 3725 
  
          JMPIjvm::checkException (jEnv);          JMPIjvm::checkException (jEnv);
  
          jlong        jCpRef = jEnv->CallLongMethod (jProp, JMPIjvm::jv.CIMPropertyCInst);           jlong jCpRef = jEnv->CallLongMethod(
          CIMProperty *cpNew  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jCpRef);                              jProp,
                               JMPIjvm::jv.CIMPropertyCInst);
            CIMProperty *cpNew = DEBUG_ConvertJavaToC(
                                     jlong,
                                     CIMProperty*,
                                     jCpRef);
  
          if (cpNew)          if (cpNew)
          {          {
Line 3252 
Line 3748 
                }                }
                else                else
                {                {
                   throw CIMException (CIM_ERR_TYPE_MISMATCH, String ("Property type mismatch"));                    throw CIMException(
                         CIM_ERR_TYPE_MISMATCH,
                         String ("Property type mismatch"));
                }                }
             }             }
          }          }
Line 3319 
Line 3817 
  
       for (Uint32 i = 0; i < keyNames.size (); i++)       for (Uint32 i = 0; i < keyNames.size (); i++)
       {       {
          DDD(PEGASUS_STD (cout) << "finding key " << keyNames[i].getString () << PEGASUS_STD (endl));           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                 "finding key %s ",
                 (const char*)keyNames[i].getString().getCString()));
  
          for (Uint32 j = 0; j < ci->getPropertyCount (); j++)          for (Uint32 j = 0; j < ci->getPropertyCount (); j++)
          {          {
Line 3327 
Line 3827 
  
             if (cp.getName () == keyNames[i])             if (cp.getName () == keyNames[i])
             {             {
                DDD(PEGASUS_STD (cout) << "adding key (" << j << ") " << keyNames[i].getString () << PEGASUS_STD (endl));                 PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                       "adding key (%d) %s ",i,
                       (const char*)keyNames[i].getString().getCString()));
  
                CIMProperty *cpRef  = new CIMProperty (cp);                CIMProperty *cpRef  = new CIMProperty (cp);
                jlong        jCpRef = DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRef);                jlong        jCpRef = DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRef);
                jobject      jProp  = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,                 jobject jProp  = jEnv->NewObject(
                                            JMPIjvm::jv.CIMPropertyClassRef,
                                                       JMPIjvm::jv.CIMPropertyNewJ,                                                       JMPIjvm::jv.CIMPropertyNewJ,
                                                       jCpRef);                                                       jCpRef);
  
Line 3358 
Line 3861 
       CIMProperty *cp  = new CIMProperty (ci->getProperty (i));       CIMProperty *cp  = new CIMProperty (ci->getProperty (i));
       jlong        jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);       jlong        jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
  
       jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);        jobject prop = jEnv->NewObject(
                            JMPIjvm::jv.CIMPropertyClassRef,
                            JMPIjvm::jv.CIMPropertyNewJ,
                            jCp);
  
       jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);       jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
    }    }
Line 3366 
Line 3872 
    return jVec;    return jVec;
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMInstance__1getClassName  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMInstance__1getClassName(
       (JNIEnv *jEnv, jobject jThs, jlong jInst)      JNIEnv *jEnv,
       jobject jThs,
       jlong jInst)
 { {
    CIMInstance  *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);    CIMInstance  *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    const String &cn = ci->getClassName ().getString ();    const String &cn = ci->getClassName ().getString ();
Line 3751 
Line 4259 
 { {
    const char *hn    = jEnv->GetStringUTFChars (jHn, NULL);    const char *hn    = jEnv->GetStringUTFChars (jHn, NULL);
    const char *ns    = jEnv->GetStringUTFChars (jNs, NULL);    const char *ns    = jEnv->GetStringUTFChars (jNs, NULL);
    jlong       cInst = DEBUG_ConvertCToJava (_nameSpace*, jlong, new _nameSpace (String (hn),String (ns)));     jlong cInst = DEBUG_ConvertCToJava(
                        _nameSpace*,
                        jlong,
                        new _nameSpace(String (hn),String (ns)));
  
    jEnv->ReleaseStringUTFChars (jHn, hn);    jEnv->ReleaseStringUTFChars (jHn, hn);
    jEnv->ReleaseStringUTFChars (jNs, ns);    jEnv->ReleaseStringUTFChars (jNs, ns);
Line 4115 
Line 4626 
       if (t != CIMKeyBinding::REFERENCE)       if (t != CIMKeyBinding::REFERENCE)
          cp = new CIMProperty (n, *cv);          cp = new CIMProperty (n, *cv);
       else       else
          cp = new CIMProperty (n, *cv, 0, ((CIMObjectPath) akb[i].getValue ()).getClassName ());           cp = new CIMProperty(
                         n,
                         *cv,
                         0,
                         ((CIMObjectPath) akb[i].getValue()).getClassName());
  
       jlong   jCp  = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);       jlong   jCp  = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
       jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);        jobject prop = jEnv->NewObject(
                            JMPIjvm::jv.CIMPropertyClassRef,
                            JMPIjvm::jv.CIMPropertyNewJ,
                            jCp);
  
       jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);       jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
    }    }
Line 4199 
Line 4717 
       (JNIEnv *jEnv, jobject jThs, jlong jCop)       (JNIEnv *jEnv, jobject jThs, jlong jCop)
 { {
    CIMObjectPath *cop  = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath *cop  = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    CIMObjectPath *copl = new CIMObjectPath (cop->getHost (), cop->getNameSpace (), cop->getClassName (), cop->getKeyBindings ());     CIMObjectPath *copl = new CIMObjectPath(
                                    cop->getHost(),
                                    cop->getNameSpace(),
                                    cop->getClassName(),
                                    cop->getKeyBindings());
  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, copl);    return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, copl);
 } }
Line 4347 
Line 4869 
                                                  (Boolean)iq,                                                  (Boolean)iq,
                                                  (Boolean)ic);                                                  (Boolean)ic);
  
       return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (en));        return DEBUG_ConvertCToJava(
                    Array<CIMClass>*,
                    jlong,
                    new Array<CIMClass> (en));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getInstance  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getInstance(
    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean lo, jboolean iq, jboolean ic,      JNIEnv *jEnv,
       jobject jThs,
       jlong jCh,
       jlong jCop,
       jboolean lo,
       jboolean iq,
       jboolean ic,
         jobjectArray jPl)         jobjectArray jPl)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
Line 4369 
Line 4900 
       pl = CIMPropertyList ();       pl = CIMPropertyList ();
  
    try {    try {
       CIMInstance *inst = new CIMInstance (ch->getInstance (ctx,        CIMInstance *inst = new CIMInstance(ch->getInstance(
                                                     ctx,
                                                             cop->getNameSpace (),                                                             cop->getNameSpace (),
                                                             *cop,                                                             *cop,
                                                             (Boolean)lo,                                                             (Boolean)lo,
Line 4440 
Line 4972 
    Catch (jEnv);    Catch (jEnv);
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstanceNames  JNIEXPORT jlong JNICALL
   (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep)  Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstanceNames(
       JNIEnv *jEnv,
       jobject jThs,
       jlong jCh,
       jlong jCop,
       jboolean deep)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    OperationContext  ctx;    OperationContext  ctx;
  
    try {    try {
       Array<CIMObjectPath> enm = ch->enumerateInstanceNames (ctx,        Array<CIMObjectPath> enm = ch->enumerateInstanceNames(
                                            ctx,
                                                              cop->getNameSpace (),                                                              cop->getNameSpace (),
                                                              cop->getClassName ()); //, (Boolean)deep);                                           cop->getClassName());
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));        return DEBUG_ConvertCToJava(
                    Array<CIMObjectPath>*,
                    jlong,
                    new Array<CIMObjectPath> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
Line 4482 
Line 5023 
                                                       (Boolean)ic,                                                       (Boolean)ic,
                                                       pl);                                                       pl);
  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (en));        return DEBUG_ConvertCToJava(
                    Array<CIMInstance>*,
                    jlong,
                    new Array<CIMInstance> (en));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1execQuery  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1execQuery(
   (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jQuery, jstring jQl)      JNIEnv *jEnv,
       jobject jThs,
       jlong jCh,
       jlong jCop,
       jstring jQuery,
       jstring jQl)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
Line 4572 
Line 5121 
    Catch (jEnv);    Catch (jEnv);
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associatorNames  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associatorNames(
   (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,      JNIEnv *jEnv,
    jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)      jobject jThs,
       jlong jCh,
       jlong jCop,
       jstring jAssocClass,
       jstring jResultClass,
       jstring jRole,
       jstring jResultRole)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
Line 4596 
Line 5151 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid association class name"));                                         jEnv->NewStringUTF(
                                              "Invalid association class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 4623 
Line 5179 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid result class name"));                                         jEnv->NewStringUTF(
                                              "Invalid result class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 4654 
Line 5211 
                                                       role,                                                       role,
                                                       resultRole);                                                       resultRole);
  
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));        return DEBUG_ConvertCToJava(
                    Array<CIMObjectPath>*,
                    jlong,
                    new Array<CIMObjectPath> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associators  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associators(
   (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,      JNIEnv *jEnv,
    jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,      jobject jThs,
    jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)      jlong jCh,
       jlong jCop,
       jstring jAssocClass,
       jstring jResultClass,
       jstring jRole,
       jstring jResultRole,
       jboolean includeQualifiers,
       jboolean includeClassOrigin,
       jobjectArray jPl)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
Line 4686 
Line 5254 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid association class name"));                                         jEnv->NewStringUTF(
                                              "Invalid association class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 4713 
Line 5282 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid result class name"));                                         jEnv->NewStringUTF(
                                              "Invalid result class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 4736 
Line 5306 
    jEnv->ReleaseStringUTFChars (jResultRole, str);    jEnv->ReleaseStringUTFChars (jResultRole, str);
  
    try {    try {
       Array<CIMObject>    enm     = ch->associators (ctx,        Array<CIMObject> enm = ch->associators(
                                        ctx,
                                                      cop->getNameSpace (),                                                      cop->getNameSpace (),
                                                      *cop,                                                      *cop,
                                                      assocClass,                                                      assocClass,
Line 4783 
Line 5354 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid association class name"));                                         jEnv->NewStringUTF(
                                              "Invalid association class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 4806 
Line 5378 
                                                      assocClass,                                                      assocClass,
                                                      role);                                                      role);
  
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));        return DEBUG_ConvertCToJava(
                    Array<CIMObjectPath>*,
                    jlong,
                    new Array<CIMObjectPath> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
Line 4838 
Line 5413 
          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,          jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                        JMPIjvm::jv.CIMExceptionNewISt,                                        JMPIjvm::jv.CIMExceptionNewISt,
                                        (jint)4, // CIM_ERR_INVALID_PARAMETER                                        (jint)4, // CIM_ERR_INVALID_PARAMETER
                                        jEnv->NewStringUTF ("Invalid association class name"));                                         jEnv->NewStringUTF(
                                              "Invalid association class name"));
  
          jEnv->Throw ((jthrowable)ev);          jEnv->Throw ((jthrowable)ev);
  
Line 4877 
Line 5453 
    return 0;    return 0;
 } }
  
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod(
   (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jMn, jobject jIn, jobject jOut)      JNIEnv *jEnv,
       jobject jThs,
       jlong jCh,
       jlong jCop,
       jstring jMn,
       jobject jIn,
       jobject jOut)
 { {
    JMPIjvm::cacheIDs (jEnv);    JMPIjvm::cacheIDs (jEnv);
  
Line 4988 
Line 5570 
             CIMParamValue *parm  = new CIMParamValue (out[i]);             CIMParamValue *parm  = new CIMParamValue (out[i]);
             jlong          jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);             jlong          jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);
  
             jEnv->SetObjectArrayElement (jOut,i,              jEnv->SetObjectArrayElement(
                                         jEnv->NewObject (JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewJ,jParm));                  jOut,
                   i,
                   jEnv->NewObject(
                       JMPIjvm::jv.CIMArgumentClassRef,
                       JMPIjvm::jv.CIMArgumentNewJ,jParm));
          }          }
       }       }
       return DEBUG_ConvertCToJava (CIMValue*, jlong, val);       return DEBUG_ConvertCToJava (CIMValue*, jlong, val);
Line 4999 
Line 5585 
    return 0;    return 0;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(
    (JNIEnv *jEnv, jobject jThs, jlong jCh, jstring jName, jstring jNs, jlong jInd)      JNIEnv *jEnv,
       jobject jThs,
       jlong jCh,
       jstring jName,
       jstring jNs,
       jlong jInd)
 { {
    CIMOMHandle *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);    CIMOMHandle *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    CIMInstance *ind = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInd);    CIMInstance *ind = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInd);
Line 5018 
Line 5609 
    CIMObjectPath ref (ind->getPath ());    CIMObjectPath ref (ind->getPath ());
  
    ref.setNameSpace (ns);    ref.setNameSpace (ns);
    DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ref = "<<ref.toString ()<<PEGASUS_STD (endl));  
    DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ind = "<<ind->getPath ().toString ()<<PEGASUS_STD (endl));     PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4,
          "Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): ref = %s",
          (const char*)ref.toString().getCString()));
      PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4,
          "Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): ind = %s",
          (const char*)ind->getPath().toString().getCString()));
   
    ind->setPath (ref);    ind->setPath (ref);
    DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ind = "<<ind->getPath ().toString ()<<PEGASUS_STD (endl));  
      PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4,
          "Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): ind = %s",
          (const char*)ind->getPath().toString().getCString()));
  
    JMPIProviderManager::indProvRecord   *prec        = NULL;    JMPIProviderManager::indProvRecord   *prec        = NULL;
    String                                sPathString = ind->getPath ().toString ();    String                                sPathString = ind->getPath ().toString ();
Line 5032 
Line 5632 
       AutoMutex lock (JMPIProviderManager::mutexProvTab);       AutoMutex lock (JMPIProviderManager::mutexProvTab);
  
       fResult = JMPIProviderManager::provTab.lookup (name, prec);       fResult = JMPIProviderManager::provTab.lookup (name, prec);
         PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4,
       DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () fResult = "<<fResult<<", name = "<<name<<PEGASUS_STD (endl));            "Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): "
             "fResult = %d, name = %s",
             fResult,(const char*)name.getCString()));
    }    }
  
    if (fResult)    if (fResult)
Line 5049 
Line 5651 
    }    }
    else    else
    {    {
       DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () provider name \""<<name<<"\" not found"<<PEGASUS_STD (endl));        PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL1,
             "Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): "
             "provider name \"%s\" not found",
             (const char*)name.getCString()));
    }    }
 } }
  
Line 5147 
Line 5752 
    return rv;    return rv;
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMParameter__1getReferenceClassName  JNIEXPORT jstring JNICALL
    (JNIEnv *jEnv, jobject jThs, jlong jCp)  Java_org_pegasus_jmpi_CIMParameter__1getReferenceClassName(
       JNIEnv *jEnv,
       jobject jThs,
       jlong jCp)
 { {
    CIMParameter *cp  = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);    CIMParameter *cp  = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);
    jstring       rv  = 0;    jstring       rv  = 0;
Line 5275 
Line 5883 
          }          }
          else          else
          {          {
             throwCIMException (jEnv,"+++ unsupported type in CIMProperty.property");              throwCIMException(
                   jEnv,
                   "+++ unsupported type in CIMProperty.property");
          }          }
       }       }
  
Line 5737 
Line 6347 
  
    if (qt->isUninitialized ())    if (qt->isUninitialized ())
    {    {
       CIMQualifierDecl *nqt = new CIMQualifierDecl (CIMName (str), CIMValue (), CIMScope ());        CIMQualifierDecl *nqt = new CIMQualifierDecl(
                                         CIMName(str),
                                         CIMValue(),
                                         CIMScope());
  
       jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, nqt);       jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, nqt);
    }    }
Line 5930 
Line 6543 
       cv = new CIMValue (s8);       cv = new CIMValue (s8);
    }    }
  
    jEnv->ReleaseShortArrayElements (jshortA, jsA, len);     jEnv->ReleaseShortArrayElements (jshortA, jsA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 5962 
Line 6575 
       cv = new CIMValue (s16);       cv = new CIMValue (s16);
    }    }
  
    jEnv->ReleaseIntArrayElements (jintA, jiA, len);     jEnv->ReleaseIntArrayElements (jintA, jiA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 5994 
Line 6607 
       cv = new CIMValue (s32);       cv = new CIMValue (s32);
    }    }
  
    jEnv->ReleaseLongArrayElements (jlongA, jlA, len);     jEnv->ReleaseLongArrayElements (jlongA, jlA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6026 
Line 6639 
       cv = new CIMValue (s64);       cv = new CIMValue (s64);
    }    }
  
    jEnv->ReleaseLongArrayElements (jlongA, jlA, len);     jEnv->ReleaseLongArrayElements (jlongA, jlA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6067 
Line 6680 
  
    cv = new CIMValue (bA);    cv = new CIMValue (bA);
  
    jEnv->ReleaseBooleanArrayElements (jboolA, jbA, len);     jEnv->ReleaseBooleanArrayElements (jboolA, jbA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6086 
Line 6699 
  
    cv = new CIMValue (fA);    cv = new CIMValue (fA);
  
    jEnv->ReleaseFloatArrayElements (jfloatA, jfA, len);     jEnv->ReleaseFloatArrayElements (jfloatA, jfA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6105 
Line 6718 
  
    cv = new CIMValue (dA);    cv = new CIMValue (dA);
  
    jEnv->ReleaseDoubleArrayElements (jdoubleA, jdA, len);     jEnv->ReleaseDoubleArrayElements (jdoubleA, jdA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6127 
Line 6740 
  
    cv = new CIMValue (cA);    cv = new CIMValue (cA);
  
    jEnv->ReleaseLongArrayElements (jlongA, jiA, len);     jEnv->ReleaseLongArrayElements (jlongA, jiA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6149 
Line 6762 
  
    cv = new CIMValue (cA);    cv = new CIMValue (cA);
  
    jEnv->ReleaseLongArrayElements (jlongA, jiA, len);     jEnv->ReleaseLongArrayElements (jlongA, jiA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6171 
Line 6784 
  
    cv = new CIMValue (cA);    cv = new CIMValue (cA);
  
    jEnv->ReleaseLongArrayElements (jlongA, jiA, len);     jEnv->ReleaseLongArrayElements (jlongA, jiA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6190 
Line 6803 
  
    cv = new CIMValue (cA);    cv = new CIMValue (cA);
  
    jEnv->ReleaseCharArrayElements (jcharA, jcA, len);     jEnv->ReleaseCharArrayElements (jcharA, jcA, 0);
  
    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);    return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
Line 6326 
Line 6939 
       {       {
          CIMObjectPath ref;          CIMObjectPath ref;
          cv->get (ref);          cv->get (ref);
          jlong jOp = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (ref));           jlong jOp = DEBUG_ConvertCToJava(
          return jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,                           CIMObjectPath*,
                            jlong,
                            new CIMObjectPath (ref));
            return jEnv->NewObject(
                             JMPIjvm::jv.CIMObjectPathClassRef,
                                  JMPIjvm::jv.CIMObjectPathNewJ,                                  JMPIjvm::jv.CIMObjectPathNewJ,
                                  jOp);                                  jOp);
       }       }
Line 6343 
Line 6960 
       {       {
          CIMDateTime dt;          CIMDateTime dt;
          cv->get (dt);          cv->get (dt);
          jlong jDT = DEBUG_ConvertCToJava (CIMDateTime*, jlong, new CIMDateTime (dt));           jlong jDT = DEBUG_ConvertCToJava(
                            CIMDateTime*, jlong,
                            new CIMDateTime(dt));
          return jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,          return jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,
                                  JMPIjvm::jv.CIMDateTimeNewJ,                                  JMPIjvm::jv.CIMDateTimeNewJ,
                                  jDT);                                  jDT);
Line 6354 
Line 6973 
          cv->get (co);          cv->get (co);
          if (co.isClass ())          if (co.isClass ())
          {          {
             jlong jCC = DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (co));              jlong jCC = DEBUG_ConvertCToJava(
                               CIMClass*,
                               jlong,
                               new CIMClass (co));
  
             return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,             return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
                                     JMPIjvm::jv.CIMObjectNewJZ,                                     JMPIjvm::jv.CIMObjectNewJZ,
Line 6363 
Line 6985 
          }          }
          else          else
          {          {
             jlong jCI = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (co));              jlong jCI = DEBUG_ConvertCToJava(
                               CIMInstance*,
                               jlong,
                               new CIMInstance (co));
  
             return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,             return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
                                     JMPIjvm::jv.CIMObjectNewJZ,                                     JMPIjvm::jv.CIMObjectNewJZ,
Line 6386 
Line 7011 
          cv->get (bo);          cv->get (bo);
  
          int          s         = bo.size ();          int          s         = bo.size ();
          jobjectArray jbooleanA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jbooleanA = (jobjectArray)jEnv->NewObjectArray(
                                                      s,
                                                                       JMPIjvm::jv.BooleanClassRef,                                                                       JMPIjvm::jv.BooleanClassRef,
                                                                       0);                                                                       0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jbooleanA,           {
               jEnv->SetObjectArrayElement(
                   jbooleanA,
                                         i,                                         i,
                                         jEnv->NewObject (JMPIjvm::jv.BooleanClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.BooleanClassRef,
                                                          JMPIjvm::jv.BooleanNewZ,                                                          JMPIjvm::jv.BooleanNewZ,
                                                          (jboolean)bo[i]));                                                          (jboolean)bo[i]));
            }
          return jbooleanA;          return jbooleanA;
       }       }
       case CIMTYPE_SINT8:       case CIMTYPE_SINT8:
Line 6405 
Line 7035 
          cv->get (s8);          cv->get (s8);
  
          int          s      = s8.size ();          int          s      = s8.size ();
          jobjectArray jbyteA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jbyteA = (jobjectArray)jEnv->NewObjectArray(
                                                   s,
                                                                    JMPIjvm::jv.ByteClassRef,                                                                    JMPIjvm::jv.ByteClassRef,
                                                                    0);                                                                    0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jbyteA,           {
               jEnv->SetObjectArrayElement(
                   jbyteA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.ByteClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.ByteClassRef,
                                                           JMPIjvm::jv.ByteNewB,                                                           JMPIjvm::jv.ByteNewB,
                                                           (jbyte)s8[i]));                                                           (jbyte)s8[i]));
            }
          return jbyteA;          return jbyteA;
       }       }
       case CIMTYPE_UINT8:       case CIMTYPE_UINT8:
Line 6424 
Line 7059 
          cv->get (u8);          cv->get (u8);
  
          int          s       = u8.size ();          int          s       = u8.size ();
          jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray(
                                                  s,
                                                                     JMPIjvm::jv.UnsignedInt8ClassRef,                                                                     JMPIjvm::jv.UnsignedInt8ClassRef,
                                                                     0);                                                                     0);
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jshortA,           {
                jEnv->SetObjectArrayElement(
                    jshortA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.UnsignedInt8ClassRef,                   jEnv->NewObject(
                        JMPIjvm::jv.UnsignedInt8ClassRef,
                                                           JMPIjvm::jv.UnsignedInt8NewS,                                                           JMPIjvm::jv.UnsignedInt8NewS,
                                                           (jshort)u8[i]));                                                           (jshort)u8[i]));
            }
          return jshortA;          return jshortA;
       }       }
       case CIMTYPE_SINT16:       case CIMTYPE_SINT16:
Line 6442 
Line 7082 
          cv->get (s16);          cv->get (s16);
  
          int          s       = s16.size ();          int          s       = s16.size ();
          jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray(
                                        s,
                                                                     JMPIjvm::jv.ShortClassRef,                                                                     JMPIjvm::jv.ShortClassRef,
                                                                     0);                                                                     0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jshortA,           {
                jEnv->SetObjectArrayElement(
                    jshortA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.ShortClassRef,                   jEnv->NewObject(
                        JMPIjvm::jv.ShortClassRef,
                                                           JMPIjvm::jv.ShortNewS,                                                           JMPIjvm::jv.ShortNewS,
                                                           (jshort)s16[i]));                                                           (jshort)s16[i]));
            }
          return jshortA;          return jshortA;
       }       }
       case CIMTYPE_UINT16:       case CIMTYPE_UINT16:
Line 6461 
Line 7106 
          cv->get (u16);          cv->get (u16);
  
          int          s     = u16.size ();          int          s     = u16.size ();
          jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray(
                                     s,
                                                                   JMPIjvm::jv.UnsignedInt16ClassRef,                                                                   JMPIjvm::jv.UnsignedInt16ClassRef,
                                                                   0);                                                                   0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jintA,           {
                jEnv->SetObjectArrayElement(
                    jintA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.UnsignedInt16ClassRef,                   jEnv->NewObject(
                        JMPIjvm::jv.UnsignedInt16ClassRef,
                                                           JMPIjvm::jv.UnsignedInt16NewI,                                                           JMPIjvm::jv.UnsignedInt16NewI,
                                                           (jint)u16[i]));                                                           (jint)u16[i]));
            }
          return jintA;          return jintA;
       }       }
       case CIMTYPE_SINT32:       case CIMTYPE_SINT32:
Line 6480 
Line 7130 
          cv->get (s32);          cv->get (s32);
  
          int          s     = s32.size ();          int          s     = s32.size ();
          jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray(
                                     s,
                                                                   JMPIjvm::jv.IntegerClassRef,                                                                   JMPIjvm::jv.IntegerClassRef,
                                                                   0);                                                                   0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jintA,           {
               jEnv->SetObjectArrayElement(
                   jintA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.IntegerClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.IntegerClassRef,
                                                           JMPIjvm::jv.IntegerNewI,                                                           JMPIjvm::jv.IntegerNewI,
                                                           (jint)s32[i]));                                                           (jint)s32[i]));
            }
          return jintA;          return jintA;
       }       }
       case CIMTYPE_UINT32:       case CIMTYPE_UINT32:
       {       {
          Array<Uint32> u32;          Array<Uint32> u32;
   
          cv->get (u32);          cv->get (u32);
   
          int          s      = u32.size ();          int          s      = u32.size ();
          jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray(
                                      s,
                                                                    JMPIjvm::jv.UnsignedInt32ClassRef,                                                                    JMPIjvm::jv.UnsignedInt32ClassRef,
                                                                    0);                                                                    0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jlongA,           {
               jEnv->SetObjectArrayElement(
                   jlongA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.UnsignedInt32ClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.UnsignedInt32ClassRef,
                                                           JMPIjvm::jv.UnsignedInt32NewJ,                                                           JMPIjvm::jv.UnsignedInt32NewJ,
                                                           (jlong)u32[i]));                                                           (jlong)u32[i]));
            }
          return jlongA;          return jlongA;
       }       }
       case CIMTYPE_SINT64:       case CIMTYPE_SINT64:
Line 6518 
Line 7176 
          cv->get (s64);          cv->get (s64);
  
          int          s      = s64.size ();          int          s      = s64.size ();
          jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray(
                                      s,
                                                                    JMPIjvm::jv.LongClassRef,                                                                    JMPIjvm::jv.LongClassRef,
                                                                    0);                                                                    0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jlongA,           {
               jEnv->SetObjectArrayElement(
                   jlongA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.LongClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.LongClassRef,
                                                           JMPIjvm::jv.LongNewJ,                                                           JMPIjvm::jv.LongNewJ,
                                                           (jlong)s64[i]));                                                           (jlong)s64[i]));
            }
          return jlongA;          return jlongA;
       }       }
       case CIMTYPE_UINT64:       case CIMTYPE_UINT64:
       {       {
          Array<Uint64> u64;          Array<Uint64> u64;
   
          cv->get (u64);          cv->get (u64);
   
          int          s     = u64.size ();          int          s     = u64.size ();
          jobjectArray ju64A = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray ju64A = (jobjectArray)jEnv->NewObjectArray(
                                     s,
                                                                   JMPIjvm::jv.UnsignedInt64ClassRef,                                                                   JMPIjvm::jv.UnsignedInt64ClassRef,
                                                                   0);                                                                   0);
  
Line 6553 
Line 7215 
  
             if (jString)             if (jString)
             {             {
                jBIG = jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,                 jBIG = jEnv->NewObject(
                             JMPIjvm::jv.UnsignedInt64ClassRef,
                                        JMPIjvm::jv.UnsignedInt64NewStr,                                        JMPIjvm::jv.UnsignedInt64NewStr,
                                        jString);                                        jString);
             }             }
  
             if (jBIG)             if (jBIG)
             {             {
                jEnv->SetObjectArrayElement (ju64A,                 jEnv->SetObjectArrayElement(
                      ju64A,
                                             i,                                             i,
                                             jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,                     jEnv->NewObject(
                          JMPIjvm::jv.UnsignedInt64ClassRef,
                                                              JMPIjvm::jv.UnsignedInt64NewBi,                                                              JMPIjvm::jv.UnsignedInt64NewBi,
                                                              jBIG));                                                              jBIG));
             }             }
Line 6572 
Line 7237 
       case CIMTYPE_REAL32:       case CIMTYPE_REAL32:
       {       {
          Array<Real32> r32;          Array<Real32> r32;
   
          cv->get (r32);          cv->get (r32);
   
          int          s       = r32.size ();          int          s       = r32.size ();
          jobjectArray jfloatA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jfloatA = (jobjectArray)jEnv->NewObjectArray(
                                       s,
                                                                     JMPIjvm::jv.FloatClassRef,                                                                     JMPIjvm::jv.FloatClassRef,
                                                                     0);                                                                     0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jfloatA,           {
               jEnv->SetObjectArrayElement(
                   jfloatA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.FloatClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.FloatClassRef,
                                                           JMPIjvm::jv.FloatNewF,                                                           JMPIjvm::jv.FloatNewF,
                                                           (jfloat)r32[i]));                                                           (jfloat)r32[i]));
            }
          return jfloatA;          return jfloatA;
       }       }
       case CIMTYPE_REAL64:       case CIMTYPE_REAL64:
Line 6595 
Line 7263 
          cv->get (r64);          cv->get (r64);
  
          int          s        = r64.size ();          int          s        = r64.size ();
          jobjectArray jdoubleA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jdoubleA = (jobjectArray)jEnv->NewObjectArray(
                                        s,
                                                                      JMPIjvm::jv.DoubleClassRef,                                                                      JMPIjvm::jv.DoubleClassRef,
                                                                      0);                                                                      0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jdoubleA,           {
               jEnv->SetObjectArrayElement(
                   jdoubleA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.DoubleClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.DoubleClassRef,
                                                           JMPIjvm::jv.DoubleNewD,                                                           JMPIjvm::jv.DoubleNewD,
                                                           (jdouble)r64[i]));                                                           (jdouble)r64[i]));
            }
          return jdoubleA;          return jdoubleA;
       }       }
       case CIMTYPE_STRING:       case CIMTYPE_STRING:
       {       {
          Array<String> str;          Array<String> str;
   
          cv->get (str);          cv->get (str);
   
          int          s        = str.size ();          int          s        = str.size ();
          jobjectArray jstringA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jstringA = (jobjectArray)jEnv->NewObjectArray(
                                        s,
                                                                      JMPIjvm::jv.StringClassRef,                                                                      JMPIjvm::jv.StringClassRef,
                                                                      0);                                                                      0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jstringA,           {
               jEnv->SetObjectArrayElement(
                   jstringA,
                                          i,                                          i,
                                          jEnv->NewStringUTF (str[i].getCString ()));                                          jEnv->NewStringUTF (str[i].getCString ()));
            }
          return jstringA;          return jstringA;
       }       }
       case CIMTYPE_REFERENCE:       case CIMTYPE_REFERENCE:
Line 6631 
Line 7306 
          cv->get (ref);          cv->get (ref);
  
          int          s     = ref.size ();          int          s     = ref.size ();
          jobjectArray jrefA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jrefA = (jobjectArray)jEnv->NewObjectArray(
                                     s,
                                                                   JMPIjvm::jv.CIMObjectPathClassRef,                                                                   JMPIjvm::jv.CIMObjectPathClassRef,
                                                                   0);                                                                   0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
          {          {
             jlong jOP = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (ref[i]));              jlong jOP = DEBUG_ConvertCToJava(
                               CIMObjectPath*,
                               jlong,
                               new CIMObjectPath(ref[i]));
  
             jEnv->SetObjectArrayElement (jrefA,             jEnv->SetObjectArrayElement (jrefA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,                                           jEnv->NewObject(
                                                JMPIjvm::jv.CIMObjectPathClassRef,
                                                           JMPIjvm::jv.CIMObjectPathNewJ,                                                           JMPIjvm::jv.CIMObjectPathNewJ,
                                                           jOP));                                                           jOP));
          }          }
Line 6654 
Line 7334 
          cv->get (c16);          cv->get (c16);
  
          int          s     = c16.size ();          int          s     = c16.size ();
          jobjectArray jc16A = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jc16A = (jobjectArray)jEnv->NewObjectArray(
                                     s,
                                                                   JMPIjvm::jv.CharacterClassRef,                                                                   JMPIjvm::jv.CharacterClassRef,
                                                                   0);                                                                   0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
             jEnv->SetObjectArrayElement (jc16A,           {
               jEnv->SetObjectArrayElement(
                   jc16A,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.CharacterClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.CharacterClassRef,
                                                           JMPIjvm::jv.CharacterNewC,                                                           JMPIjvm::jv.CharacterNewC,
                                                           (jchar)c16[i]));                                                           (jchar)c16[i]));
            }
          return jc16A;          return jc16A;
       }       }
       case CIMTYPE_DATETIME:       case CIMTYPE_DATETIME:
Line 6674 
Line 7358 
          cv->get (dt);          cv->get (dt);
  
          int          s    = dt.size ();          int          s    = dt.size ();
          jobjectArray jdtA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jdtA = (jobjectArray)jEnv->NewObjectArray(
                                    s,
                                                                  JMPIjvm::jv.CIMDateTimeClassRef,                                                                  JMPIjvm::jv.CIMDateTimeClassRef,
                                                                  0);                                                                  0);
  
          for (int i = 0; i < s; i++)          for (int i = 0; i < s; i++)
          {          {
             jlong jDT = DEBUG_ConvertCToJava (CIMDateTime*, jlong, new CIMDateTime (dt[i]));              jlong jDT = DEBUG_ConvertCToJava(
                               CIMDateTime*,
                               jlong,
                               new CIMDateTime (dt[i]));
  
             jEnv->SetObjectArrayElement (jdtA,              jEnv->SetObjectArrayElement(
                   jdtA,
                                          i,                                          i,
                                          jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,                  jEnv->NewObject(
                       JMPIjvm::jv.CIMDateTimeClassRef,
                                                           JMPIjvm::jv.CIMDateTimeNewJ,                                                           JMPIjvm::jv.CIMDateTimeNewJ,
                                                           jDT));                                                           jDT));
          }          }
Line 6697 
Line 7387 
          cv->get (co);          cv->get (co);
  
          int          s    = co.size ();          int          s    = co.size ();
          jobjectArray jcoA = (jobjectArray)jEnv->NewObjectArray (s,           jobjectArray jcoA = (jobjectArray)jEnv->NewObjectArray(
                                    s,
                                                                  JMPIjvm::jv.CIMObjectClassRef,                                                                  JMPIjvm::jv.CIMObjectClassRef,
                                                                  0);                                                                  0);
  
Line 6705 
Line 7396 
          {          {
             if (co[i].isClass ())             if (co[i].isClass ())
             {             {
                jlong jCC = DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (co[i]));                 jlong jCC = DEBUG_ConvertCToJava(
                                  CIMClass*,
                                  jlong,
                                  new CIMClass (co[i]));
  
                jEnv->SetObjectArrayElement (jcoA,                 jEnv->SetObjectArrayElement(
                      jcoA,
                                             i,                                             i,
                                             jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,                     jEnv->NewObject(
                          JMPIjvm::jv.CIMObjectClassRef,
                                                              JMPIjvm::jv.CIMObjectNewJZ,                                                              JMPIjvm::jv.CIMObjectNewJZ,
                                                              jCC,                                                              jCC,
                                                              (jboolean)true));                                                              (jboolean)true));
             }             }
             else             else
             {             {
                jlong jCI = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (co[i]));                 jlong jCI = DEBUG_ConvertCToJava(
                                  CIMInstance*,
                                  jlong,
                                  new CIMInstance (co[i]));
  
                jEnv->SetObjectArrayElement (jcoA,                 jEnv->SetObjectArrayElement(
                      jcoA,
                                             i,                                             i,
                                             jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,                     jEnv->NewObject(
                          JMPIjvm::jv.CIMObjectClassRef,
                                                              JMPIjvm::jv.CIMObjectNewJZ,                                                              JMPIjvm::jv.CIMObjectNewJZ,
                                                              jCI,                                                              jCI,
                                                              (jboolean)false));                                                              (jboolean)false));
Line 6807 
Line 7508 
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_InstEnumeration__1getInstance JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_InstEnumeration__1getInstance
   (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)   (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
 { {
    Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMInstance>*, jEnum);     Array<CIMInstance> *enm = DEBUG_ConvertJavaToC(
                                    jlong,
                                    Array<CIMInstance>*,
                                    jEnum);
  
    return DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance ((*enm)[pos]));     return DEBUG_ConvertCToJava(
                 CIMInstance*,
                 jlong,
                 new CIMInstance((*enm)[pos]));
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1size JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1size
   (JNIEnv *jEnv, jobject jThs, jlong jEnum)   (JNIEnv *jEnv, jobject jThs, jlong jEnum)
 { {
    Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMInstance>*, jEnum);     Array<CIMInstance> *enm = DEBUG_ConvertJavaToC(
                                    jlong,
                                    Array<CIMInstance>*,
                                    jEnum);
  
    return enm->size ();    return enm->size ();
 } }
Line 6834 
Line 7544 
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance
   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance)   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance)
 { {
    WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC(
    CIMInstance        *ci       = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciInstance);                                        jlong,
                                         WQLSelectStatement*,
                                         jWQLStmt);
      CIMInstance        *ci       = DEBUG_ConvertJavaToC(
                                         jlong,
                                         CIMInstance*,
                                         jciInstance);
  
    if (  !wql_stmt    if (  !wql_stmt
       || !ci       || !ci
Line 6850 
Line 7566 
    }    }
    catch (const Exception &e)    catch (const Exception &e)
    {    {
       cerr << "Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance: Caught: " << e.getMessage () << endl;        cerr << "Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance: Caught: "
              << e.getMessage () << endl;
  
       return false;       return false;
    }    }
Line 6871 
Line 7588 
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance
   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance)   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance)
 { {
    WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC(
    CIMInstance        *ci       = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciInstance);                                        jlong,
                                         WQLSelectStatement*,
                                         jWQLStmt);
      CIMInstance        *ci       = DEBUG_ConvertJavaToC(
                                         jlong,
                                         CIMInstance*,
                                         jciInstance);
    CIMInstance        *ciRet    = 0;    CIMInstance        *ciRet    = 0;
  
    if (  !wql_stmt    if (  !wql_stmt
Line 6892 
Line 7615 
       }       }
       catch (const Exception &e)       catch (const Exception &e)
       {       {
          cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyInstance: Caught: " << e.getMessage () << endl;           cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyInstance:"
                        " Caught: "
                 << e.getMessage () << endl;
  
          return 0;          return 0;
       }       }
Line 6909 
Line 7634 
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass
   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciClass)   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciClass)
 { {
    WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC(
    CIMClass           *cc       = DEBUG_ConvertJavaToC (jlong, CIMClass*, jciClass);                                        jlong,
                                         WQLSelectStatement*,
                                         jWQLStmt);
      CIMClass           *cc       = DEBUG_ConvertJavaToC(
                                         jlong,
                                         CIMClass*,
                                         jciClass);
    CIMClass           *ccRet    = NULL;    CIMClass           *ccRet    = NULL;
  
    if (!wql_stmt)    if (!wql_stmt)
Line 6928 
Line 7659 
       }       }
       catch (const Exception &e)       catch (const Exception &e)
       {       {
          cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyClass: Caught: " << e.getMessage () << endl;           cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyClass: Caught: "
                 << e.getMessage () << endl;
  
          return 0;          return 0;
       }       }
Line 6956 
Line 7688 
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_OperationContext__1get JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_OperationContext__1get
   (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jContainer, jstring jKey)   (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jContainer, jstring jKey)
 { {
    OperationContext *poc  = DEBUG_ConvertJavaToC (jlong, OperationContext*, jInst);     OperationContext *poc  = DEBUG_ConvertJavaToC(
                                   jlong,
                                   OperationContext*,
                                   jInst);
    jobject           jRet = 0;    jobject           jRet = 0;
  
    if (!poc)    if (!poc)
Line 6969 
Line 7704 
    String      container (pszContainer);    String      container (pszContainer);
    String      key       (pszKey);    String      key       (pszKey);
  
 ///printf ("container: %s\n", pszContainer);  
 ///printf ("key: %s\n", pszKey);  
   
    try {    try {
       if (container == "IdentityContainer")       if (container == "IdentityContainer")
       {       {
          IdentityContainer ic = poc->get (IdentityContainer::NAME);          IdentityContainer ic = poc->get (IdentityContainer::NAME);
   
 /////////printf ("ic\n");  
   
          if (key == "userName")          if (key == "userName")
          {          {
             String userName = ic.getUserName ();             String userName = ic.getUserName ();
   
 ////////////printf ("userName: %s\n", (const char*)userName.getCString ());  
   
             jRet = jEnv->NewStringUTF ((const char*)userName.getCString ());             jRet = jEnv->NewStringUTF ((const char*)userName.getCString ());
          }          }
       }       }
       else if (container == "SubscriptionInstanceContainer")       else if (container == "SubscriptionInstanceContainer")
       {       {
          SubscriptionInstanceContainer sic = poc->get (SubscriptionInstanceContainer::NAME);           SubscriptionInstanceContainer sic =
                poc->get(SubscriptionInstanceContainer::NAME);
  
          if (key == "subscriptionInstance")          if (key == "subscriptionInstance")
          {          {
             CIMInstance ci     = sic.getInstance ();             CIMInstance ci     = sic.getInstance ();
             jlong       jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (ci));              jlong       jciRef = DEBUG_ConvertCToJava(
                                        CIMInstance*,
                                        jlong,
                                        new CIMInstance (ci));
  
             jRet = jEnv->NewObject (JMPIjvm::jv.CIMInstanceClassRef,             jRet = jEnv->NewObject (JMPIjvm::jv.CIMInstanceClassRef,
                                     JMPIjvm::jv.CIMInstanceNewJ,                                     JMPIjvm::jv.CIMInstanceNewJ,
Line 7004 
Line 7734 
       }       }
       else if (container == "SubscriptionInstanceNamesContainer")       else if (container == "SubscriptionInstanceNamesContainer")
       {       {
          SubscriptionInstanceNamesContainer sinc = poc->get (SubscriptionInstanceNamesContainer::NAME);           SubscriptionInstanceNamesContainer sinc=
                poc->get (SubscriptionInstanceNamesContainer::NAME);
  
          if (key == "subscriptionInstanceNames")          if (key == "subscriptionInstanceNames")
          {          {
Line 7012 
Line 7743 
             jobjectArray         jcopa       = 0;             jobjectArray         jcopa       = 0;
             int                  jcopaLength = copa.size ();             int                  jcopaLength = copa.size ();
  
             jcopa = (jobjectArray)jEnv->NewObjectArray (jcopaLength,              jcopa = (jobjectArray)jEnv->NewObjectArray(
                           jcopaLength,
                                                         JMPIjvm::jv.CIMObjectPathClassRef,                                                         JMPIjvm::jv.CIMObjectPathClassRef,
                                                         0);                                                         0);
  
             for (int i = 0; i < jcopaLength; i++)             for (int i = 0; i < jcopaLength; i++)
             {             {
                jEnv->SetObjectArrayElement (jcopa,                 jEnv->SetObjectArrayElement(
                      jcopa,
                                             i,                                             i,
                                             jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,                     jEnv->NewObject(
                          JMPIjvm::jv.CIMObjectPathClassRef,
                                                              JMPIjvm::jv.CIMObjectPathNewJ,                                                              JMPIjvm::jv.CIMObjectPathNewJ,
                                                              new CIMObjectPath (copa[i])));                                                              new CIMObjectPath (copa[i])));
             }             }
Line 7030 
Line 7764 
       }       }
       else if (container == "SubscriptionFilterConditionContainer")       else if (container == "SubscriptionFilterConditionContainer")
       {       {
          SubscriptionFilterConditionContainer sfcc = poc->get (SubscriptionFilterConditionContainer::NAME);           SubscriptionFilterConditionContainer sfcc =
                poc->get (SubscriptionFilterConditionContainer::NAME);
 /////////printf ("sfcc\n");  
  
          if (key == "filterCondition")          if (key == "filterCondition")
          {          {
             String filterCondition = sfcc.getFilterCondition ();             String filterCondition = sfcc.getFilterCondition ();
  
 ////////////printf ("filterCondition: %s\n", (const char*)filterCondition.getCString ());  
   
             jRet = jEnv->NewStringUTF ((const char*)filterCondition.getCString ());             jRet = jEnv->NewStringUTF ((const char*)filterCondition.getCString ());
          }          }
          else if (key == "queryLanguage")          else if (key == "queryLanguage")
Line 7051 
Line 7782 
       }       }
       else if (container == "SubscriptionFilterQueryContainer")       else if (container == "SubscriptionFilterQueryContainer")
       {       {
          SubscriptionFilterQueryContainer sfqc = poc->get (SubscriptionFilterQueryContainer::NAME);           SubscriptionFilterQueryContainer sfqc =
                poc->get(SubscriptionFilterQueryContainer::NAME);
  
          if (key == "filterQuery")          if (key == "filterQuery")
          {          {
Line 7105 
Line 7837 
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_PathEnumeration__1getObjectPath JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_PathEnumeration__1getObjectPath
   (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)   (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
 { {
    Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMObjectPath>*, jEnum);     Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC(
                                      jlong,
                                      Array<CIMObjectPath>*,
                                      jEnum);
  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath ((*enm)[pos]));     return DEBUG_ConvertCToJava(
                 CIMObjectPath*,
                 jlong,
                 new CIMObjectPath((*enm)[pos]));
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1size JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1size
   (JNIEnv *jEnv, jobject jThs, jlong jEnum)   (JNIEnv *jEnv, jobject jThs, jlong jEnum)
 { {
    Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMObjectPath>*, jEnum);     Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC(
                                      jlong,
                                      Array<CIMObjectPath>*,
                                      jEnum);
  
    return enm->size ();    return enm->size ();
 } }
Line 7128 
Line 7869 
 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_QualEnumeration__1getQualifierType JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_QualEnumeration__1getQualifierType
   (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)   (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
 { {
    Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMQualifierDecl>*, jEnum);     Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC(
                                         jlong,
                                         Array<CIMQualifierDecl>*,
                                         jEnum);
  
    return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, new CIMQualifierDecl ((*enm)[pos]));     return DEBUG_ConvertCToJava(
                 CIMQualifierDecl*,
                 jlong,
                 new CIMQualifierDecl((*enm)[pos]));
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1size JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1size
   (JNIEnv *jEnv, jobject jThs, jlong jEnum)   (JNIEnv *jEnv, jobject jThs, jlong jEnum)
 { {
    Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMQualifierDecl>*, jEnum);     Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC(
                                         jlong,
                                         Array<CIMQualifierDecl>*,
                                         jEnum);
  
    return enm->size ();    return enm->size ();
 } }
Line 7156 
Line 7906 
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize
   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt)   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt)
 { {
    WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (
                                         jlong,
                                         WQLSelectStatement*,
                                         jWQLStmt);
  
    delete wql_stmt;    delete wql_stmt;
  
Line 7177 
Line 7930 
    String              query (pszQuery);    String              query (pszQuery);
  
    wql_stmt = new WQLSelectStatement (queryLanguage, query);    wql_stmt = new WQLSelectStatement (queryLanguage, query);
    DDD (PEGASUS_STD (cout)<<"--- Java_org_pegasus_jmpi_SelectExp__1newSelectExp: wql_stmt = "<<PEGASUS_STD (hex)<< (long)wql_stmt<<PEGASUS_STD (dec)<<PEGASUS_STD (endl));  
      PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4,
          "Java_org_pegasus_jmpi_SelectExp__1newSelectExp: wql_stmt = %p",
          wql_stmt));
  
    try    try
    {    {
Line 7185 
Line 7941 
    }    }
    catch (const Exception &e)    catch (const Exception &e)
    {    {
       cerr << "Java_org_pegasus_jmpi_SelectExp__1newSelectExp: Caught: " << e.getMessage () << endl;        PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4,
             "Java_org_pegasus_jmpi_SelectExp__1newSelectExp: Caught: %s",
             (const char*)e.getMessage().getCString()));
    }    }
  
    jEnv->ReleaseStringUTFChars (jQuery, pszQuery);    jEnv->ReleaseStringUTFChars (jQuery, pszQuery);
Line 7201 
Line 7959 
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString
   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt)   (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt)
 { {
    WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC(
                                         jlong,
                                         WQLSelectStatement*,
                                         jWQLStmt);
    String              cond;    String              cond;
  
    if (wql_stmt)    if (wql_stmt)
Line 7212 
Line 7973 
       }       }
       catch (const Exception &e)       catch (const Exception &e)
       {       {
          cerr << "Java_org_pegasus_jmpi_SelectExp__1getSelectString: Caught: " << e.getMessage () << endl;           cerr << "Java_org_pegasus_jmpi_SelectExp__1getSelectString: Caught: "
                 << e.getMessage () << endl;
  
          cond = "";          cond = "";
       }       }


Legend:
Removed from v.1.75  
changed lines
  Added in v.1.83

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2