(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.22 and 1.28

version 1.22, 2005/05/23 20:43:47 version 1.28, 2005/06/07 18:11:17
Line 34 
Line 34 
 //              Magda Vacarelu //              Magda Vacarelu
 //              David Dillard, VERITAS Software Corp. //              David Dillard, VERITAS Software Corp.
 //                  (david.dillard@veritas.com) //                  (david.dillard@veritas.com)
 //              Mark Hamzy  //              Mark Hamzy,    hamzy@us.ibm.com
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 68 
Line 68 
 JvmVector JMPIjvm::jv; JvmVector JMPIjvm::jv;
 int JMPIjvm::trace=0; int JMPIjvm::trace=0;
  
   #ifdef PEGASUS_DEBUG
 #define DDD(x) if (JMPIjvm::trace) x; #define DDD(x) if (JMPIjvm::trace) x;
   #else
   #define DDD(x)
   #endif
  
 #include "Convert.h" #include "Convert.h"
  
 JMPIjvm::ClassTable  JMPIjvm::_classTable; JMPIjvm::ClassTable  JMPIjvm::_classTable;
 JMPIjvm::ObjectTable JMPIjvm::_objectTable; JMPIjvm::ObjectTable JMPIjvm::_objectTable;
  
 typedef struct {  
   int clsIndex;  
   const char * methodName;  
   const char * signature;  
 } METHOD_STRUCT;  
   
 const char* classNames[]={ const char* classNames[]={
       "java/util/Vector" , // 0  /*00*/ "java/util/Vector" ,
       "java/lang/Boolean", // 1  /*01*/ "java/lang/Boolean",
       "java/lang/Byte",    // 2  /*02*/ "java/lang/Byte",
       "java/lang/Short",   // 3  /*03*/ "java/lang/Short",
       "java/lang/Integer", // 4  /*04*/ "java/lang/Integer",
       "java/lang/Long",    // 5  /*05*/ "java/lang/Long",
       "java/lang/Float",   // 6  /*06*/ "java/lang/Float",
       "java/lang/Double",  // 7  /*07*/ "java/lang/Double",
       "org/pegasus/jmpi/UnsignedInt8",    // 8  /*08*/ "org/pegasus/jmpi/UnsignedInt8",
       "org/pegasus/jmpi/UnsignedInt16",   // 9  /*09*/ "org/pegasus/jmpi/UnsignedInt16",
       "org/pegasus/jmpi/UnsignedInt32",   // 10  /*10*/ "org/pegasus/jmpi/UnsignedInt32",
       "org/pegasus/jmpi/UnsignedInt64",   // 11  /*11*/ "org/pegasus/jmpi/UnsignedInt64",
       "org/pegasus/jmpi/CIMObjectPath",   // 12  /*12*/ "org/pegasus/jmpi/CIMObjectPath",
       "org/pegasus/jmpi/CIMException",    // 13  /*13*/ "org/pegasus/jmpi/CIMException",
       "java/math/BigInteger",             // 14  /*14*/ "java/math/BigInteger",
       "org/pegasus/jmpi/CIMProperty",     // 15  /*15*/ "org/pegasus/jmpi/CIMProperty",
   /*16*/ "org/pegasus/jmpi/CIMOMHandle",
       "org/pegasus/jmpi/CIMOMHandle",     // 16  /*17*/ "org/pegasus/jmpi/CIMClass",
       "org/pegasus/jmpi/CIMClass",        // 17  /*18*/ "org/pegasus/jmpi/CIMInstance",
       "org/pegasus/jmpi/CIMInstance",     // 18  /*19*/ "org/pegasus/jmpi/CIMValue",
       "org/pegasus/jmpi/CIMValue",        // 19  /*20*/ "java/lang/Object",
       "java/lang/Object",                 // 20  /*21*/ "java/lang/Throwable",
       "java/lang/Throwable",              // 21  /*22*/ "java/lang/String",
       "java/lang/String",                 // 22  /*23*/ "org/pegasus/jmpi/JarClassLoader",
       "org/pegasus/jmpi/JarClassLoader",  // 23  /*24*/ "org/pegasus/jmpi/CIMDateTime",
       "org/pegasus/jmpi/CIMDateTime",     // 24  /*25*/ "org/pegasus/jmpi/SelectExp",
       "org/pegasus/jmpi/SelectExp",       // 25  /*26*/ "org/pegasus/jmpi/CIMQualifier",
       "org/pegasus/jmpi/CIMQualifier",    // 26  /*27*/ "org/pegasus/jmpi/CIMQualifierType",
       "org/pegasus/jmpi/CIMQualifierType",// 27  /*28*/ "org/pegasus/jmpi/CIMFlavor",
       "org/pegasus/jmpi/CIMFlavor",       // 28  /*29*/ "org/pegasus/jmpi/CIMArgument",
       "org/pegasus/jmpi/CIMArgument",     // 29  /*30*/ "org/pegasus/jmpi/CIMInstanceException",
       "org/pegasus/jmpi/CIMInstanceException",    // 30  
 }; };
  
   
 const METHOD_STRUCT instanceMethodNames[]={ const METHOD_STRUCT instanceMethodNames[]={
 /*00*/ { 0, "<init>",        "()V" },  /*00 VectorNew               */ { /*Vector        */ 0, "<init>",          "()V" },
 /*01*/ { 1, "<init>",        "(Z)V" },  /*01 BooleanNewZ             */ { /*Boolean       */ 1, "<init>",          "(Z)V" },
 /*02*/ { 2, "<init>",        "(B)V" },  /*02 ByteNewB                */ { /*Byte          */ 2, "<init>",          "(B)V" },
 /*03*/ { 3, "<init>",        "(S)V" },  /*03 ShortNewS               */ { /*Short         */ 3, "<init>",          "(S)V" },
 /*04*/ { 4, "<init>",        "(I)V" },  /*04 IntegerNewI             */ { /*Integer       */ 4, "<init>",          "(I)V" },
 /*05*/ { 5, "<init>",        "(J)V" },    // ???  /*05 LongNewJ                */ { /*Long          */ 5, "<init>",          "(J)V" },
 /*06*/ { 6, "<init>",        "(F)V" },  /*06 FloatNewF               */ { /*Float         */ 6, "<init>",          "(F)V" },
 /*07*/ { 7, "<init>",        "(D)V" },  /*07 DoubleNewD              */ { /*Double        */ 7, "<init>",          "(D)V" },
 /*08*/ { 8, "<init>",        "(S)V" },  /*08 UnsignedInt8NewS        */ { /*UnsignedInt8  */ 8, "<init>",          "(S)V" },
 /*09*/ { 9, "<init>",        "(I)V" },  /*09 UnsignedInt16NewI       */ { /*UnsignedInt16 */ 9, "<init>",          "(I)V" },
 /*10*/ { 10,"<init>",        "(J)V" },  /*10 UnsignedInt32NewJ       */ { /*UnsignedInt32 */10, "<init>",          "(J)V" },
 /*11*/ { 11,"<init>",        "(Ljava/math/BigInteger;)V" },  /*11 UnsignedInt64NewBi      */ { /*UnsignedInt64 */11, "<init>",          "(Ljava/math/BigInteger;)V" },
 /*12*/ { 12,"<init>",        "(I)V" },  /*12 CIMObjectPathNewI       */ { /*CIMObjectPath */12, "<init>",          "(I)V" },
 /*13*/ { 13,"<init>",        "(Ljava/lang/String;)V" },  /*13 CIMExceptionNewSt       */ { /*CIMException  */13, "<init>",          "(Ljava/lang/String;)V" },
 /*14*/ { 15,"<init>",        "(I)V" },  /*14 CIMPropertyNewI         */ { /*CIMProperty   */15, "<init>",          "(I)V" },
 /*15*/ { 0, "addElement",    "(Ljava/lang/Object;)V" },  /*15 VectorAddElement        */ { /*Vector        */ 0, "addElement",      "(Ljava/lang/Object;)V" },
   /*16 VectorElementAt         */ { /*Vector        */ 0, "elementAt",       "(I)Ljava/lang/Object;" },
 /*16*/ { 0, "elementAt",     "(I)Ljava/lang/Object;" },  /*17 CIMOMHandleNewISt       */ { /*CIMOMHandle   */16, "<init>",          "(ILjava/lang/String;)V" },
 /*17*/ { 16,"<init>",        "(ILjava/lang/String;)V" },  /*18 CIMExceptionNewI        */ { /*CIMException  */13, "<init>",          "(I)V" },
 /*18*/ { 13,"<init>",        "(I)V" },  /*19 CIMClassNewI            */ { /*CIMClass      */17, "<init>",          "(I)V" },
 /*19*/ { 17,"<init>",        "(I)V" },  /*20 CIMInstanceNewI         */ { /*CIMInstance   */18, "<init>",          "(I)V" },
 /*20*/ { 18,"<init>",        "(I)V" },  /*21 CIMObjectPathCInst      */ { /*CIMObjectPath */12, "cInst",           "()I" },
 /*21*/ { 12,"<init>",        "(I)V" },  /*22 CIMInstanceCInst        */ { /*CIMInstance   */18, "cInst",           "()I" },
 /*22*/ { 12,"cInst",         "()I" },  /*23 CIMClassCInst           */ { /*CIMClass      */17, "cInst",           "()I" },
 /*23*/ { 18,"cInst",         "()I" },  /*24 ObjectToString          */ { /*Object        */20, "toString",        "()Ljava/lang/String;" },
 /*24*/ { 17,"cInst",         "()I" },  /*25 ThrowableGetMessage     */ { /*Throwable     */21, "getMessage",      "()Ljava/lang/String;" },
 /*25*/ { 20,"toString",      "()Ljava/lang/String;" },  /*26 CIMExceptionGetID       */ { /*CIMException  */13, "getID",           "()Ljava/lang/String;" },
 /*26*/ { 21,"getMessage",    "()Ljava/lang/String;" },  /*27 VectorSize              */ { /*Vector        */ 0, "size",            "()I" },
 /*27*/ { 13,"getID",         "()Ljava/lang/String;" },  /*28 CIMPropertyCInst        */ { /*CIMProperty   */15, "cInst",           "()I" },
 /*28*/ { 0, "size",          "()I" },  /*29 CIMOMHandleGetClass     */ { /*CIMOMHandle   */16, "getClass",        "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" },
 /*29*/ { 15,"cInst",         "()I" },  /*30 VectorRemoveElementAt   */ { /*Vector        */ 0, "removeElementAt", "(I)V" },
 /*30*/ { 16,"getClass",      "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" },  /*31 CIMValueCInst           */ { /*CIMValue      */19, "cInst",           "()I" },
 /*31*/ { 0, "removeElementAt",     "(I)V" },  /*32 CIMExceptionNewISt      */ { /*CIMException  */13, "<init>",          "(ILjava/lang/String;)V" },
 /*32*/ { 19,"cInst",         "()I" },  /*33 CIMExceptionGetCode     */ { /*CIMException  */13, "getCode",         "()I" },
 /*33*/ { 13,"<init>",        "(ILjava/lang/String;)V" },  /*34 CIMDateTimeNewI         */ { /*CIMDateTime   */24, "<init>",          "(I)V" },
 /*34*/ { 13,"getCode",       "()I" },  /*35 SelectExpNewI           */ { /*SelectExp     */25, "<init>",          "(I)V" },
 /*35*/ { 24,"<init>",        "(I)V" },  /*36 CIMQualifierNewI        */ { /*CIMQualifier  */26, "<init>",          "(I)V" },
 /*36*/ { 25,"<init>",        "(I)V" },  /*37 CIMFlavorNewI           */ { /*CIMFlavor     */28, "<init>",          "(I)V" },
 /*37*/ { 26,"<init>",        "(I)V" },  /*38 CIMFlavorGetFlavor      */ { /*CIMFlavor     */28, "getFlavor",       "()I" },
 /*38*/ { 28,"<init>",        "(I)V" },  /*39 CIMArgumentCInst        */ { /*CIMArgument   */29, "cInst",           "()I" },
 /*38*/ { 28,"getFlavor",     "()I" },  /*40 CIMArgumentNewI         */ { /*CIMArgument   */29, "<init>",          "(I)V" },
 /*39*/ { 29,"cInst",         "()I" },  /*41 CIMExceptionNew         */ { /*CIMException  */13, "<init>",          "()V" },
 /*40*/ { 29,"<init>",        "(I)V" },  /*42 CIMExceptionNewStOb     */ { /*CIMException  */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;)V" },
 /*41*/ { 13,"<init>",        "()V" },  /*43 CIMExceptionNewStObOb   */ { /*CIMException  */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" },
 /*42*/ { 13,"<init>",        "(Ljava/lang/String;)V" },  /*44 CIMExceptionNewStObObOb */ { /*CIMException  */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" },
 /*43*/ { 13,"<init>",        "(Ljava/lang/String;Ljava/lang/Object;)V" },  /*45 CIMValueNewI            */ { /*CIMValue      */19, "<init>",          "(I)V" },
 /*44*/ { 13,"<init>",        "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" },  
 /*45*/ { 13,"<init>",        "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" },  
 }; };
  
 const METHOD_STRUCT staticMethodNames[]={ const METHOD_STRUCT staticMethodNames[]={
       { 14, "valueOf",      "(J)Ljava/math/BigInteger;" },  /*00*/ { 14, "valueOf",         "(J)Ljava/math/BigInteger;" },
       { 23, "load",         "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" },  /*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(char*)];  jclass    classRefs[sizeof(classNames)/sizeof(classNames[0])];
 jmethodID instanceMethodIDs[sizeof(instanceMethodNames)/sizeof(METHOD_STRUCT)];  jmethodID instanceMethodIDs[sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])];
 jmethodID staticMethodIDs[sizeof(staticMethodNames)/sizeof(METHOD_STRUCT)];  jmethodID staticMethodIDs[sizeof(staticMethodNames)/sizeof(staticMethodNames[0])];
   
 //static jclass providerClassRef;  
  
 jclass JMPIjvm::getGlobalClassRef(JNIEnv *env, const char* name) {  jclass JMPIjvm::getGlobalClassRef(JNIEnv *env, const char* name)
   {
   jclass localRefCls=env->FindClass(name);   jclass localRefCls=env->FindClass(name);
  
   DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: localRefCls = "<<PEGASUS_STD(hex)<<(int)localRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<PEGASUS_STD(endl));  
   
   if (localRefCls==NULL)   if (localRefCls==NULL)
      return JNI_FALSE;      return JNI_FALSE;
  
   jclass globalRefCls=(jclass) env->NewGlobalRef(localRefCls);   jclass globalRefCls=(jclass) env->NewGlobalRef(localRefCls);
  
   #if 0
     jmethodID   jmidToString   = env->GetMethodID(globalRefCls, "toString", "()Ljava/lang/String;");
     jstring     jstringResult  = (jstring)env->CallObjectMethod(globalRefCls, jmidToString);
     const char *pszResult      = env->GetStringUTFChars(jstringResult, 0);
   
     DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(int)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<", pszResult = "<<pszResult<<PEGASUS_STD(endl));
   
     env->ReleaseStringUTFChars (jstringResult, pszResult);
   #else
     DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(int)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<PEGASUS_STD(endl));
   #endif
   
   env->DeleteLocalRef(localRefCls);   env->DeleteLocalRef(localRefCls);
  
   return globalRefCls;   return globalRefCls;
 } }
  
 JMPIjvm::JMPIjvm() {  JMPIjvm::JMPIjvm()
   {
    initJVM();    initJVM();
 } }
  
 JMPIjvm::~JMPIjvm() {  JMPIjvm::~JMPIjvm()
   {
 } }
  
 int JMPIjvm::cacheIDs(JNIEnv *env) {  int JMPIjvm::cacheIDs(JNIEnv *env)
   {
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): enter"<<PEGASUS_STD(endl));    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): enter"<<PEGASUS_STD(endl));
  
    if (methodInitDone==1)    if (methodInitDone==1)
Line 215 
Line 219 
  
    methodInitDone=-1;    methodInitDone=-1;
  
    for (unsigned i=0; i<(sizeof(classNames)/sizeof(char*)); i++) {     for (unsigned i=0; i<(sizeof(classNames)/sizeof(classNames[0])); i++) {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<classNames[i]<<PEGASUS_STD(endl)); //////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)
       {       {
Line 225 
Line 229 
       }       }
    }    }
  
    for (unsigned j=0; j<(sizeof(instanceMethodNames)/sizeof(METHOD_STRUCT)); j++) {     for (unsigned j=0; j<(sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])); j++) {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<j<<": "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<PEGASUS_STD(endl));  //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<j<<": "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<": "<<instanceMethodNames[j].signature<<PEGASUS_STD(endl));
       if ((instanceMethodIDs[j]=env->GetMethodID(classRefs[instanceMethodNames[j].clsIndex],       if ((instanceMethodIDs[j]=env->GetMethodID(classRefs[instanceMethodNames[j].clsIndex],
                                                  instanceMethodNames[j].methodName,instanceMethodNames[j].signature))==NULL)                                                   instanceMethodNames[j].methodName,
                                                    instanceMethodNames[j].signature))==NULL)
       {       {
          DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<PEGASUS_STD(endl));          DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<PEGASUS_STD(endl));
          return 0;          return 0;
       }       }
    }    }
  
    for (unsigned k=0; k<(sizeof(staticMethodNames)/sizeof(METHOD_STRUCT)); k++) {     for (unsigned k=0; k<(sizeof(staticMethodNames)/sizeof(staticMethodNames[0])); k++) {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<k<<": "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<PEGASUS_STD(endl));  //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<k<<": "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<": "<<staticMethodNames[k].signature<<PEGASUS_STD(endl));
       if ((staticMethodIDs[k]=env->GetStaticMethodID(classRefs[staticMethodNames[k].clsIndex],       if ((staticMethodIDs[k]=env->GetStaticMethodID(classRefs[staticMethodNames[k].clsIndex],
                                                      staticMethodNames[k].methodName,staticMethodNames[k].signature))==NULL)                                                       staticMethodNames[k].methodName,
                                                        staticMethodNames[k].signature))==NULL)
       {       {
          DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<PEGASUS_STD(endl));          DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<PEGASUS_STD(endl));
          return 0;          return 0;
Line 252 
Line 258 
    return JNI_TRUE;    return JNI_TRUE;
 } }
  
 static void throwCIMException(JNIEnv *env,char *e) {  static void throwCIMException(JNIEnv *env,char *e)
    env->ThrowNew(classRefs[13],e);  {
      env->ThrowNew(JMPIjvm::jv.CIMExceptionClassRef,e);
 } }
  
 int JMPIjvm::destroyJVM() int JMPIjvm::destroyJVM()
Line 263 
Line 270 
    #ifdef JAVA_DESTROY_VM_WORKS    #ifdef JAVA_DESTROY_VM_WORKS
    if (jvm!=NULL) {    if (jvm!=NULL) {
       JvmVector *jv;       JvmVector *jv;
   
       attachThread(&jv);       attachThread(&jv);
       jvm->DestroyJavaVM();       jvm->DestroyJavaVM();
   
       jvm=NULL;       jvm=NULL;
   
       return 0;       return 0;
    }    }
    #endif    #endif
Line 371 
Line 381 
    if (cacheIDs(env)==1) {    if (cacheIDs(env)==1) {
       jv.classRefs=classRefs;       jv.classRefs=classRefs;
       jv.instMethodIDs=instanceMethodIDs;       jv.instMethodIDs=instanceMethodIDs;
         jv.staticMethodIDs=staticMethodIDs;
    }    }
  
    if (env->ExceptionOccurred()) {    if (env->ExceptionOccurred()) {
Line 389 
Line 400 
    return env;    return env;
 } }
  
 void JMPIjvm::detachThread() {  void JMPIjvm::detachThread()
   {
    jvm->DetachCurrentThread();    jvm->DetachCurrentThread();
 } }
  
Line 417 
Line 429 
    jstring jjar=env->NewStringUTF((const char*)jar.getCString());    jstring jjar=env->NewStringUTF((const char*)jar.getCString());
    jstring jcln=env->NewStringUTF((const char*)cln.getCString());    jstring jcln=env->NewStringUTF((const char*)cln.getCString());
  
    jclass jcls=(jclass)env->CallStaticObjectMethod(classRefs[23],staticMethodIDs[1],     jclass jcls=(jclass)env->CallStaticObjectMethod(JMPIjvm::jv.JarClassLoaderRef,jv.JarClassLoaderLoad,
       jjar,jcln);       jjar,jcln);
    if (env->ExceptionCheck()) {    if (env->ExceptionCheck()) {
       env->ExceptionDescribe();       env->ExceptionDescribe();
Line 541 
Line 553 
          }          }
       }       }
       else {       else {
            DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::checkException: exiting..."<<PEGASUS_STD(endl));
          env->ExceptionDescribe();          env->ExceptionDescribe();
          exit(13);          exit(13);
       }       }
Line 614 
Line 627 
  
 void throwCimException(JNIEnv *jEnv, CIMException & e) { void throwCimException(JNIEnv *jEnv, CIMException & e) {
       JMPIjvm::cacheIDs(jEnv);       JMPIjvm::cacheIDs(jEnv);
       jobject ev=jEnv->NewObject(classRefs[13],instanceMethodIDs[18],(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(classRefs[13],instanceMethodIDs[18],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(classRefs[13],instanceMethodIDs[18],7);        jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,7);
       jEnv->Throw((jthrowable)ev);       jEnv->Throw((jthrowable)ev);
 } }
  
Line 641 
Line 654 
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1new JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1new
   (JNIEnv *jEnv, jobject jThs) {   (JNIEnv *jEnv, jobject jThs) {
    jEnv->CallNonvirtualVoidMethod(jThs,classRefs[13],instanceMethodIDs[41]);     jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNew);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newS JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newS
   (JNIEnv *jEnv, jobject jThs, jstring jM) {   (JNIEnv *jEnv, jobject jThs, jstring jM) {
    jEnv->CallNonvirtualVoidMethod(jThs,classRefs[13],instanceMethodIDs[42],jM);     jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewSt,jM);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSO JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSO
   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1) {   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1) {
    jEnv->CallNonvirtualVoidMethod(jThs,classRefs[13],instanceMethodIDs[43],jM,jO1);     jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStOb,jM,jO1);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSOO JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSOO
   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1, jobject jO2) {   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1, jobject jO2) {
    jEnv->CallNonvirtualVoidMethod(jThs,classRefs[13],instanceMethodIDs[44],jM,jO1,jO2);     jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStObOb,jM,jO1,jO2);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSOOO JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSOOO
   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1, jobject jO2, jobject jO3) {   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1, jobject jO2, jobject jO3) {
    jEnv->CallNonvirtualVoidMethod(jThs,classRefs[13],instanceMethodIDs[45],jM,jO1,jO2,jO3);     jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStObObOb,jM,jO1,jO2,jO3);
 } }
  
  
Line 674 
Line 687 
  
 CIMPropertyList getList(JNIEnv *jEnv, jobjectArray l) { CIMPropertyList getList(JNIEnv *jEnv, jobjectArray l) {
    CIMPropertyList pl;    CIMPropertyList pl;
   
    if (l) {    if (l) {
       Array<CIMName> n;       Array<CIMName> n;
   
       for (jsize i=0,s=jEnv->GetArrayLength(l); i<s; i++) {       for (jsize i=0,s=jEnv->GetArrayLength(l); i<s; i++) {
          jstring jObj=(jstring)jEnv->GetObjectArrayElement(l,i);          jstring jObj=(jstring)jEnv->GetObjectArrayElement(l,i);
          const char *pn=jEnv->GetStringUTFChars(jObj,NULL);          const char *pn=jEnv->GetStringUTFChars(jObj,NULL);
   
          n.append(pn);          n.append(pn);
   
          jEnv->ReleaseStringUTFChars(jObj,pn);          jEnv->ReleaseStringUTFChars(jObj,pn);
       }       }
   
       pl.set(n);       pl.set(n);
    }    }
   
    return pl;    return pl;
 } }
  
Line 941 
Line 960 
    String            query(str);    String            query(str);
  
    jEnv->ReleaseStringUTFChars(jQuery,str);    jEnv->ReleaseStringUTFChars(jQuery,str);
   
    str=jEnv->GetStringUTFChars(jQl,NULL);    str=jEnv->GetStringUTFChars(jQl,NULL);
  
    String ql(str);    String ql(str);
Line 970 
Line 990 
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
    OperationContext  ctx;    OperationContext  ctx;
    const char       *str = jEnv->GetStringUTFChars(jN,NULL);    const char       *str = jEnv->GetStringUTFChars(jN,NULL);
      CIMName           prop(str);
   
      jEnv->ReleaseStringUTFChars(jN,str);
  
    try {    try {
       CIMName prop(str);  
       CIMValue *cv = new CIMValue(ch->getProperty(ctx, cop->getNameSpace(),*cop,prop));       CIMValue *cv = new CIMValue(ch->getProperty(ctx, cop->getNameSpace(),*cop,prop));
       jEnv->ReleaseStringUTFChars(jN,str);  
  
       return DEBUG_ConvertCToJava (CIMValue*, jint, cv);       return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
    }    }
Line 994 
Line 1015 
    CIMName           pName(str);    CIMName           pName(str);
  
    jEnv->ReleaseStringUTFChars(jPn,str);    jEnv->ReleaseStringUTFChars(jPn,str);
   
    try {    try {
       ch->setProperty(ctx,cop->getNameSpace(),*cop,pName,*val);       ch->setProperty(ctx,cop->getNameSpace(),*cop,pName,*val);
    }    }
Line 1014 
Line 1036 
    Array<CIMParamValue> in;    Array<CIMParamValue> in;
    Array<CIMParamValue> out;    Array<CIMParamValue> out;
  
    for (int i=0,m=jEnv->CallIntMethod(jIn,instanceMethodIDs[28]); i<m; i++) {     for (int i = 0, m = jEnv->CallIntMethod(jIn,JMPIjvm::jv.VectorSize); i < m; i++) {
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        jobject jProp=jEnv->CallObjectMethod(jIn,instanceMethodIDs[16],i);         jobject jProp = jEnv->CallObjectMethod(jIn,JMPIjvm::jv.VectorElementAt,i);
   
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        jint         jp = jEnv->CallIntMethod(jProp,instanceMethodIDs[29]);         jint         jp = jEnv->CallIntMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);
        CIMProperty *p  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);        CIMProperty *p  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);
  
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
Line 1035 
Line 1058 
          const CIMValue       v    = parm.getValue();          const CIMValue       v    = parm.getValue();
          CIMProperty         *p    = new CIMProperty(parm.getParameterName(),v,v.getArraySize());          CIMProperty         *p    = new CIMProperty(parm.getParameterName(),v,v.getArraySize());
          jint                 jp   = DEBUG_ConvertCToJava (CIMProperty*, jint, p);          jint                 jp   = DEBUG_ConvertCToJava (CIMProperty*, jint, p);
          jobject              prop = jEnv->NewObject(classRefs[15],instanceMethodIDs[14],jp);           jobject              prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jp);
  
          jEnv->CallVoidMethod(jOut,instanceMethodIDs[15],prop);           jEnv->CallVoidMethod(jOut,JMPIjvm::jv.VectorAddElement,prop);
       }       }
       return DEBUG_ConvertCToJava (CIMValue*, jint, val);       return DEBUG_ConvertCToJava (CIMValue*, jint, val);
    }    }
Line 1067 
Line 1090 
        jobject jArg=jEnv->GetObjectArrayElement(jIn,i);        jobject jArg=jEnv->GetObjectArrayElement(jIn,i);
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        jint           jp = jEnv->CallIntMethod(jArg,instanceMethodIDs[39]);         jint           jp = jEnv->CallIntMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);
        CIMParamValue *p  = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jp);        CIMParamValue *p  = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jp);
  
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
Line 1078 
Line 1101 
       CIMValue *val=new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out));       CIMValue *val=new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out));
  
       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {
          const CIMParamValue &parm  = out[i];           CIMParamValue *parm  = new CIMParamValue (out[i]);
          jint                 jParm = DEBUG_ConvertCToJava (const CIMParamValue*, jint, &parm);           jint           jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);
  
          jEnv->SetObjectArrayElement(jOut,i,          jEnv->SetObjectArrayElement(jOut,i,
                                      jEnv->NewObject(classRefs[29],instanceMethodIDs[40],jParm));                                       jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));
       }       }
       return DEBUG_ConvertCToJava (CIMValue*, jint, val);       return DEBUG_ConvertCToJava (CIMValue*, jint, val);
    }    }
Line 1099 
Line 1122 
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
    OperationContext  ctx;    OperationContext  ctx;
    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
   
    CIMName assocClass(str);    CIMName assocClass(str);
   
    jEnv->ReleaseStringUTFChars(jAssocClass,str);    jEnv->ReleaseStringUTFChars(jAssocClass,str);
   
    str=jEnv->GetStringUTFChars(jResultClass,NULL);    str=jEnv->GetStringUTFChars(jResultClass,NULL);
   
    CIMName resultClass(str);    CIMName resultClass(str);
   
    jEnv->ReleaseStringUTFChars(jResultClass,str);    jEnv->ReleaseStringUTFChars(jResultClass,str);
   
    str=jEnv->GetStringUTFChars(jRole,NULL);    str=jEnv->GetStringUTFChars(jRole,NULL);
   
    String role(str);    String role(str);
   
    jEnv->ReleaseStringUTFChars(jRole,str);    jEnv->ReleaseStringUTFChars(jRole,str);
   
    str=jEnv->GetStringUTFChars(jResultRole,NULL);    str=jEnv->GetStringUTFChars(jResultRole,NULL);
   
    String resultRole(str);    String resultRole(str);
   
    jEnv->ReleaseStringUTFChars(jResultRole,str);    jEnv->ReleaseStringUTFChars(jResultRole,str);
  
    try {    try {
       Array<CIMObjectPath> enm=ch->associatorNames(ctx,       Array<CIMObjectPath> enm=ch->associatorNames(ctx,
          cop->getNameSpace(),*cop,assocClass,resultClass,role,resultRole);                                                     cop->getNameSpace(),
                                                      *cop,
                                                      assocClass,
                                                      resultClass,
                                                      role,
                                                      resultRole);
   
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 1132 
Line 1170 
    OperationContext  ctx;    OperationContext  ctx;
    CIMPropertyList   pl  = getList(jEnv,jPl);    CIMPropertyList   pl  = getList(jEnv,jPl);
    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
   
    CIMName assocClass(str);    CIMName assocClass(str);
   
    jEnv->ReleaseStringUTFChars(jAssocClass,str);    jEnv->ReleaseStringUTFChars(jAssocClass,str);
   
    str=jEnv->GetStringUTFChars(jResultClass,NULL);    str=jEnv->GetStringUTFChars(jResultClass,NULL);
   
    CIMName resultClass(str);    CIMName resultClass(str);
   
    jEnv->ReleaseStringUTFChars(jResultClass,str);    jEnv->ReleaseStringUTFChars(jResultClass,str);
   
    str=jEnv->GetStringUTFChars(jRole,NULL);    str=jEnv->GetStringUTFChars(jRole,NULL);
   
    String role(str);    String role(str);
   
    jEnv->ReleaseStringUTFChars(jRole,str);    jEnv->ReleaseStringUTFChars(jRole,str);
   
    str=jEnv->GetStringUTFChars(jResultRole,NULL);    str=jEnv->GetStringUTFChars(jResultRole,NULL);
   
    String resultRole(str);    String resultRole(str);
   
    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,assocClass,resultClass,role,resultRole,                                                      cop->getNameSpace(),
                                            (Boolean)includeQualifiers,(Boolean)includeClassOrigin,pl);                                                      *cop,
                                                       assocClass,
                                                       resultClass,
                                                       role,
                                                       resultRole,
                                                       (Boolean)includeQualifiers,
                                                       (Boolean)includeClassOrigin,
                                                       pl);
       Array<CIMInstance> *enmInst=new Array<CIMInstance>();       Array<CIMInstance> *enmInst=new Array<CIMInstance>();
   
       for (int i=0,m=enm.size(); i<m; i++) {       for (int i=0,m=enm.size(); i<m; i++) {
          enmInst->append(CIMInstance(enm[i]));          enmInst->append(CIMInstance(enm[i]));
       }       }
   
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 1168 
Line 1224 
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
    OperationContext  ctx;    OperationContext  ctx;
    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
   
    CIMName assocClass(str);    CIMName assocClass(str);
   
    jEnv->ReleaseStringUTFChars(jAssocClass,str);    jEnv->ReleaseStringUTFChars(jAssocClass,str);
   
    str=jEnv->GetStringUTFChars(jRole,NULL);    str=jEnv->GetStringUTFChars(jRole,NULL);
   
    String role(str);    String role(str);
   
    jEnv->ReleaseStringUTFChars(jRole,str);    jEnv->ReleaseStringUTFChars(jRole,str);
  
    try {    try {
       Array<CIMObjectPath> enm=ch->referenceNames(ctx,       Array<CIMObjectPath> enm=ch->referenceNames(ctx,
          cop->getNameSpace(),*cop,assocClass,role);                                                      cop->getNameSpace(),
                                                       *cop,
                                                       assocClass,
                                                       role);
   
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 1198 
Line 1261 
    CIMName           assocClass(str);    CIMName           assocClass(str);
  
    jEnv->ReleaseStringUTFChars(jAssocClass,str);    jEnv->ReleaseStringUTFChars(jAssocClass,str);
   
    str=jEnv->GetStringUTFChars(jRole,NULL);    str=jEnv->GetStringUTFChars(jRole,NULL);
  
    String role(str);    String role(str);
Line 1206 
Line 1270 
  
    try {    try {
       Array<CIMObject> enm=ch->references(ctx,       Array<CIMObject> enm=ch->references(ctx,
                                           cop->getNameSpace(),*cop,assocClass,role,                                                     cop->getNameSpace(),
                                           (Boolean)includeQualifiers,(Boolean)includeClassOrigin,pl);                                                     *cop,
                                                      assocClass,
                                                      role,
                                                      (Boolean)includeQualifiers,
                                                      (Boolean)includeClassOrigin,
                                                      pl);
       Array<CIMInstance> *enmInst=new Array<CIMInstance>();       Array<CIMInstance> *enmInst=new Array<CIMInstance>();
   
       for (int i=0,m=enm.size(); i<m; i++) {       for (int i=0,m=enm.size(); i<m; i++) {
          enmInst->append(CIMInstance(enm[i]));          enmInst->append(CIMInstance(enm[i]));
       }       }
   
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 1228 
Line 1299 
    String       name(str);    String       name(str);
  
    jEnv->ReleaseStringUTFChars(jName,str);    jEnv->ReleaseStringUTFChars(jName,str);
   
    str=jEnv->GetStringUTFChars(jNs,NULL);    str=jEnv->GetStringUTFChars(jNs,NULL);
  
    String ns(str);    String ns(str);
Line 1288 
Line 1360 
       }       }
       for (int i=0,m=cls->getPropertyCount(); i<m; i++) {       for (int i=0,m=cls->getPropertyCount(); i<m; i++) {
          CIMProperty cp= cls->getProperty(i);          CIMProperty cp= cls->getProperty(i);
   
          ci->addProperty(cp.clone());          ci->addProperty(cp.clone());
   
          for (int j=0, s=cp.getQualifierCount(); j<s; j++) {          for (int j=0, s=cp.getQualifierCount(); j<s; j++) {
             try {             try {
                ci->getProperty(i).addQualifier(cp.getQualifier(j));                ci->getProperty(i).addQualifier(cp.getQualifier(j));
Line 1296 
Line 1370 
             catch (Exception e) {}             catch (Exception e) {}
          }          }
       }       }
   
       return DEBUG_ConvertCToJava (CIMInstance*, jint, ci);       return DEBUG_ConvertCToJava (CIMInstance*, jint, ci);
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 1372 
Line 1447 
       CIMProperty *cp  = new CIMProperty(cls->getProperty(i));       CIMProperty *cp  = new CIMProperty(cls->getProperty(i));
       jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);       jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
  
       jobject prop=jEnv->NewObject(classRefs[15],instanceMethodIDs[14],jCp);        jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
  
       jEnv->CallVoidMethod(jVec,instanceMethodIDs[15],prop);        jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
    }    }
  
    return jVec;    return jVec;
Line 1397 
Line 1472 
    for (int i=cls->getPropertyCount()-1; i>=0; i--) {    for (int i=cls->getPropertyCount()-1; i>=0; i--) {
       cls->removeProperty(i);       cls->removeProperty(i);
    }    }
    for (Uint32 i=0,s=jEnv->CallIntMethod(jVec,instanceMethodIDs[28]); i<s; i++) {     for (Uint32 i=0,s=jEnv->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<s; i++) {
       JMPIjvm::checkException(jEnv);       JMPIjvm::checkException(jEnv);
  
       jobject o=jEnv->CallObjectMethod(jVec,instanceMethodIDs[16],(i));        jobject o=jEnv->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,(i));
  
       jint         jp = jEnv->CallIntMethod(o,instanceMethodIDs[29]);        jint         jp = jEnv->CallIntMethod(o,JMPIjvm::jv.CIMPropertyCInst);
       CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);       CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);
  
       JMPIjvm::checkException(jEnv);       JMPIjvm::checkException(jEnv);
Line 1420 
Line 1495 
    for (int i=0,s=cls->getQualifierCount(); i<s; i++) {    for (int i=0,s=cls->getQualifierCount(); i<s; i++) {
       CIMQualifier *cq   = new CIMQualifier(cls->getQualifier(i));       CIMQualifier *cq   = new CIMQualifier(cls->getQualifier(i));
       jint          jCq  = DEBUG_ConvertCToJava (CIMQualifier*, jint, cq);       jint          jCq  = DEBUG_ConvertCToJava (CIMQualifier*, jint, cq);
       jobject       qual = jEnv->NewObject(classRefs[26],instanceMethodIDs[37],jCq);        jobject       qual = jEnv->NewObject(JMPIjvm::jv.CIMQualifierClassRef,JMPIjvm::jv.CIMQualifierNewI,jCq);
  
       jEnv->CallVoidMethod(jVec,instanceMethodIDs[15],qual);        jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,qual);
    }    }
  
    return jVec;    return jVec;
Line 1464 
Line 1539 
             CIMProperty *cp  = new CIMProperty(cls->getProperty(pos));             CIMProperty *cp  = new CIMProperty(cls->getProperty(pos));
             jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);             jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
  
             jobject prop=jEnv->NewObject(classRefs[15],instanceMethodIDs[14],jCp);              jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
  
             jEnv->CallVoidMethod(jVec,instanceMethodIDs[15],prop);              jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
          }          }
       }       }
    }    }
Line 1519 
Line 1594 
  
    if (lo) {    if (lo) {
       cf=new CIMClass(cc->clone());       cf=new CIMClass(cc->clone());
   
       CIMName clsn=cc->getClassName();       CIMName clsn=cc->getClassName();
   
       for (int i=cf->getPropertyCount()-1; i>=0; i--)       for (int i=cf->getPropertyCount()-1; i>=0; i--)
          if (cf->getProperty(i).getClassOrigin()==clsn) cf->removeProperty(i);          if (cf->getProperty(i).getClassOrigin()==clsn) cf->removeProperty(i);
   
       return DEBUG_ConvertCToJava (CIMClass*, jint, cf);       return DEBUG_ConvertCToJava (CIMClass*, jint, cf);
    }    }
    else if (jPl) {    else if (jPl) {
       CIMPropertyList pl=getList(jEnv,jPl);       CIMPropertyList pl=getList(jEnv,jPl);
       Array<CIMName> n=pl.getPropertyNameArray();       Array<CIMName> n=pl.getPropertyNameArray();
   
       cf=new CIMClass(clsn, cc->getSuperClassName());       cf=new CIMClass(clsn, cc->getSuperClassName());
   
       for (int i=0,s=n.size(); i<s; i++) {       for (int i=0,s=n.size(); i<s; i++) {
          Uint32 pos=cc->findProperty(n[i]);          Uint32 pos=cc->findProperty(n[i]);
   
          if (pos!=PEG_NOT_FOUND) {          if (pos!=PEG_NOT_FOUND) {
             if (iq) {             if (iq) {
                CIMProperty cp=cc->getProperty(pos).clone();                CIMProperty cp=cc->getProperty(pos).clone();
                if (!ic) cp.setClassOrigin(CIMName());  
                  if (!ic)
                     cp.setClassOrigin(CIMName());
   
                cf->addProperty(cp);                cf->addProperty(cp);
             }             }
             else {             else {
                CIMProperty cp=cc->getProperty(pos);                CIMProperty cp=cc->getProperty(pos);
                CIMName co;                CIMName co;
                if (ic) co=cp.getClassOrigin();  
                CIMProperty np(cp.getName(),cp.getValue(),cp.getArraySize(),                 if (ic)
                               cp.getReferenceClassName(),co,cp.getPropagated());                    co = cp.getClassOrigin();
   
                  CIMProperty np(cp.getName(),
                                 cp.getValue(),
                                 cp.getArraySize(),
                                 cp.getReferenceClassName(),
                                 co,
                                 cp.getPropagated());
   
                cf->addProperty(np);                cf->addProperty(np);
             }             }
          }          }
       }       }
       if (iq) for (Uint32 i=0,s=cc->getQualifierCount(); i<s; i++)        if (iq)
            for (Uint32 i = 0, s = cc->getQualifierCount(); i < s; i++)
          cf->addQualifier(cc->getQualifier(i));          cf->addQualifier(cc->getQualifier(i));
    }    }
    else if (iq) {    else if (iq) {
       cf=new CIMClass(cc->clone());       cf=new CIMClass(cc->clone());
       if (ic) return DEBUG_ConvertCToJava (CIMClass*, jint, cf);  
         if (ic)
            return DEBUG_ConvertCToJava (CIMClass*, jint, cf);
   
       for (int i=cf->getPropertyCount()-1; i>=0; i--) {       for (int i=cf->getPropertyCount()-1; i>=0; i--) {
          CIMProperty cp=cf->getProperty(i);          CIMProperty cp=cf->getProperty(i);
   
          cp.setClassOrigin(CIMName());          cp.setClassOrigin(CIMName());
          cf->removeProperty(i);          cf->removeProperty(i);
          cf->addProperty(cp);          cf->addProperty(cp);
Line 1561 
Line 1658 
    }    }
    else {    else {
       cf=new CIMClass(clsn, cc->getSuperClassName());       cf=new CIMClass(clsn, cc->getSuperClassName());
   
       for (int i=cc->getPropertyCount()-1; i>=0; i--) {       for (int i=cc->getPropertyCount()-1; i>=0; i--) {
          CIMProperty cp=cc->getProperty(i);          CIMProperty cp=cc->getProperty(i);
          CIMName co;          CIMName co;
          if (ic) co=cp.getClassOrigin();  
          CIMProperty np(cp.getName(),cp.getValue(),cp.getArraySize(),           if (ic)
                         cp.getReferenceClassName(),co,cp.getPropagated());              co = cp.getClassOrigin();
   
            CIMProperty np(cp.getName(),
                           cp.getValue(),
                           cp.getArraySize(),
                           cp.getReferenceClassName(),
                           co,
                           cp.getPropagated());
   
          cf->addProperty(np);          cf->addProperty(np);
       }       }
    }    }
Line 1592 
Line 1698 
       (JNIEnv *jEnv, jobject jThs, jstring jN)       (JNIEnv *jEnv, jobject jThs, jstring jN)
 { {
    const char *str=jEnv->GetStringUTFChars(jN,NULL);    const char *str=jEnv->GetStringUTFChars(jN,NULL);
      CIMInstance *ci = new CIMInstance(CIMName(str));
   
      jEnv->ReleaseStringUTFChars(jN,str);
  
    return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance(CIMName(str)));     return DEBUG_ConvertCToJava (CIMInstance*, jint, ci);
 } }
  
 //Added by Andy Viciu //Added by Andy Viciu
Line 1603 
Line 1712 
    CIMInstance *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);    CIMInstance *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);    const char  *str = jEnv->GetStringUTFChars(jN,NULL);
  
      jEnv->ReleaseStringUTFChars(jN,str);
   
    /* NOT SUPPORTED AND NOT NEEDED*/    /* NOT SUPPORTED AND NOT NEEDED*/
 } }
  
Line 1615 
Line 1726 
    Uint32       pos = ci->findProperty(CIMName(str));    Uint32       pos = ci->findProperty(CIMName(str));
  
    try {    try {
       if (pos!=PEG_NOT_FOUND) {        if (pos!=PEG_NOT_FOUND)
         {
          CIMProperty cp=ci->getProperty(pos);          CIMProperty cp=ci->getProperty(pos);
   
          if (cp.getType()==cv->getType())          if (cp.getType()==cv->getType())
            {
             cp.setValue(*cv);             cp.setValue(*cv);
          else {           }
            else
            {
             DDD(PEGASUS_STD(cerr)<<"!!! CIMInstance.setProperty - Wrong type of CIMValue (instance name:"<<ci->getClassName().getString()<<", property name: "<<str<<")");             DDD(PEGASUS_STD(cerr)<<"!!! CIMInstance.setProperty - Wrong type of CIMValue (instance name:"<<ci->getClassName().getString()<<", property name: "<<str<<")");
             DDD(PEGASUS_STD(cerr)<<"!!! CIMInstance.setProperty : "<<cp.getType()<<" <> "<<cv->getType()<<PEGASUS_STD(endl));             DDD(PEGASUS_STD(cerr)<<"!!! CIMInstance.setProperty : "<<cp.getType()<<" <> "<<cv->getType()<<PEGASUS_STD(endl));
  
             throw CIMException(CIM_ERR_FAILED, String("Type mismatch"));             throw CIMException(CIM_ERR_FAILED, String("Type mismatch"));
          }          }
   
          ci->removeProperty(pos);          ci->removeProperty(pos);
          ci->addProperty(cp);          ci->addProperty(cp);
       }       }
       else {        else
         {
          CIMProperty *cp=new CIMProperty(CIMName(str),*cv);          CIMProperty *cp=new CIMProperty(CIMName(str),*cv);
          ci->addProperty(*cp);          ci->addProperty(*cp);
       }       }
Line 1653 
Line 1771 
  
    try {    try {
       Uint32 pos=ci->findProperty(CIMName(str));       Uint32 pos=ci->findProperty(CIMName(str));
       if (pos!=PEG_NOT_FOUND) {  
         if (pos != PEG_NOT_FOUND)
         {
          CIMProperty *cp=new CIMProperty(ci->getProperty(pos));          CIMProperty *cp=new CIMProperty(ci->getProperty(pos));
   
          rv = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);          rv = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
       }       }
    }    }
Line 1675 
Line 1796 
          CIMProperty *cp  = new CIMProperty(ci->getProperty(i));          CIMProperty *cp  = new CIMProperty(ci->getProperty(i));
          jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);          jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
  
          jobject prop=jEnv->NewObject(classRefs[15],instanceMethodIDs[14],jCp);           jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
  
          jEnv->CallVoidMethod(jVec,instanceMethodIDs[15],prop);           jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
       }       }
    }    }
  
Line 1703 
Line 1824 
    jint         rv  = -1;    jint         rv  = -1;
    Uint32       pos = ci->findQualifier(String(str));    Uint32       pos = ci->findQualifier(String(str));
  
    if (pos!=PEG_NOT_FOUND) {     if (pos!=PEG_NOT_FOUND)
      {
       rv = DEBUG_ConvertCToJava (CIMQualifier*, jint, new CIMQualifier(ci->getQualifier(pos)));       rv = DEBUG_ConvertCToJava (CIMQualifier*, jint, new CIMQualifier(ci->getQualifier(pos)));
    }    }
  
Line 1730 
Line 1852 
       CIMProperty *cp  = new CIMProperty(ci->getProperty(i));       CIMProperty *cp  = new CIMProperty(ci->getProperty(i));
       jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);       jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
  
       jobject prop=jEnv->NewObject(classRefs[15],instanceMethodIDs[14],jCp);        jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
  
       jEnv->CallVoidMethod(jVec,instanceMethodIDs[15],prop);        jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
    }    }
  
    return jVec;    return jVec;
Line 1843 
Line 1965 
  
    if (str)    if (str)
       cop->setClassName(str);       cop->setClassName(str);
   
    jEnv->ReleaseStringUTFChars(jCn,str);    jEnv->ReleaseStringUTFChars(jCn,str);
  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);
Line 1910 
Line 2033 
    const char    *str = jEnv->GetStringUTFChars(jName,NULL);    const char    *str = jEnv->GetStringUTFChars(jName,NULL);
  
    cop->setHost(String(str));    cop->setHost(String(str));
   
    jEnv->ReleaseStringUTFChars(jName,str);    jEnv->ReleaseStringUTFChars(jName,str);
 } }
  
Line 1931 
Line 2055 
    const char    *str = jEnv->GetStringUTFChars(jName,NULL);    const char    *str = jEnv->GetStringUTFChars(jName,NULL);
  
    cop->setClassName(String(str));    cop->setClassName(String(str));
   
    jEnv->ReleaseStringUTFChars(jName,str);    jEnv->ReleaseStringUTFChars(jName,str);
 } }
  
Line 1952 
Line 2077 
    const char    *str = jEnv->GetStringUTFChars(jName,NULL);    const char    *str = jEnv->GetStringUTFChars(jName,NULL);
  
    cop->setNameSpace(CIMNamespaceName(str));    cop->setNameSpace(CIMNamespaceName(str));
   
    jEnv->ReleaseStringUTFChars(jName,str);    jEnv->ReleaseStringUTFChars(jName,str);
 } }
  
Line 1965 
Line 2091 
  
    keyBindings.append(CIMKeyBinding(str,*cv));    keyBindings.append(CIMKeyBinding(str,*cv));
    cop->setKeyBindings(Array<CIMKeyBinding>(keyBindings));    cop->setKeyBindings(Array<CIMKeyBinding>(keyBindings));
   
    jEnv->ReleaseStringUTFChars(jId,str);    jEnv->ReleaseStringUTFChars(jId,str);
 } }
  
Line 2003 
Line 2130 
          cp=new CIMProperty(n,*cv, 0, ((CIMObjectPath) akb[i].getValue()).getClassName());          cp=new CIMProperty(n,*cv, 0, ((CIMObjectPath) akb[i].getValue()).getClassName());
  
       jint    jCp  = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);       jint    jCp  = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
       jobject prop = jEnv->NewObject(classRefs[15],instanceMethodIDs[14],jCp);        jobject prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
  
       jEnv->CallVoidMethod(jVec,instanceMethodIDs[15],prop);        jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
    }    }
  
    return jVec;    return jVec;
Line 2019 
Line 2146 
    const char                 *strKeyName = jEnv->GetStringUTFChars(jStr,NULL);    const char                 *strKeyName = jEnv->GetStringUTFChars(jStr,NULL);
    jstring                     retStr     = NULL;    jstring                     retStr     = NULL;
  
    for (Uint32 i=0,s=akb.size(); i<s; i++) {     for (Uint32 i=0,s=akb.size(); i<s; i++)
      {
       const String &n=akb[i].getName().getString();       const String &n=akb[i].getName().getString();
       if (n==String(strKeyName)) {  
         if (n==String(strKeyName))
         {
          retStr=jEnv->NewStringUTF(akb[i].getValue().getCString());          retStr=jEnv->NewStringUTF(akb[i].getValue().getCString());
          break;          break;
       }       }
Line 2039 
Line 2169 
    CIMObjectPath *cop    = new CIMObjectPath();    CIMObjectPath *cop    = new CIMObjectPath();
  
    cop->set(String(strCop));    cop->set(String(strCop));
   
    jEnv->ReleaseStringUTFChars(jStr,strCop);    jEnv->ReleaseStringUTFChars(jStr,strCop);
  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);
Line 2050 
Line 2181 
    CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);    CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
    Array<CIMKeyBinding>  akb;    Array<CIMKeyBinding>  akb;
  
    for (Uint32 i=0,s=jEnv->CallIntMethod(jVec,instanceMethodIDs[28]); i<s; i++) {     for (Uint32 i=0,s=jEnv->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<s; i++) {
       jobject o=jEnv->CallObjectMethod(jVec,instanceMethodIDs[16],(i));        jobject o=jEnv->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,(i));
  
       jint         jCp = jEnv->CallIntMethod(o,instanceMethodIDs[29]);        jint         jCp = jEnv->CallIntMethod(o,JMPIjvm::jv.CIMPropertyCInst);
       CIMProperty *cp  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jCp);       CIMProperty *cp  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jCp);
  
       akb.append(CIMKeyBinding(cp->getName(),cp->getValue()));       akb.append(CIMKeyBinding(cp->getName(),cp->getValue()));
Line 2182 
Line 2313 
    return str;    return str;
 } }
  
 CIMType toPtype(int jType) {  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDataType__1finalize
   if (jType>13) return (CIMType)14;        (JNIEnv *jEnv, jobject jThs, jint jDt)
   return (CIMType)(jTypeToPType[jType]);  {
      _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
   
      delete dt;
   
      DEBUG_ConvertCleanup (jint, jDt);
   }
   
   CIMType toPtype (int jType)
   {
     if (jType > 13)
        return (CIMType)14;
     return
        (CIMType)(jTypeToPType[jType]);
 } }
  
  
Line 2261 
Line 2405 
    String         n(str);    String         n(str);
  
    cp->setParameterName(n);    cp->setParameterName(n);
   
    jEnv->ReleaseStringUTFChars(jN,str);    jEnv->ReleaseStringUTFChars(jN,str);
 } }
  
Line 2307 
Line 2452 
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1property JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1property
       (JNIEnv *jEnv, jobject jThs, jstring jN, jint jV)       (JNIEnv *jEnv, jobject jThs, jstring jN, jint jV)
 { {
    try {  
       CIMValue    *cv  = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);       CIMValue    *cv  = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
       const char  *str = jEnv->GetStringUTFChars(jN,NULL);       const char  *str = jEnv->GetStringUTFChars(jN,NULL);
       CIMProperty *cp  = 0;       CIMProperty *cp  = 0;
      jint         jCp = -1;
  
      try {
       if (cv->getType()!=CIMTYPE_REFERENCE)       if (cv->getType()!=CIMTYPE_REFERENCE)
         {
          cp=new CIMProperty(String(str),*cv);          cp=new CIMProperty(String(str),*cv);
       else {        }
          if (!cv->isArray()) {        else
         {
            if (!cv->isArray())
            {
             CIMObjectPath cop;             CIMObjectPath cop;
   
             cv->get(cop);             cv->get(cop);
             cp=new CIMProperty(String(str),*cv,0, cop.getClassName());             cp=new CIMProperty(String(str),*cv,0, cop.getClassName());
          }          }
          else {           else
            {
             throwCIMException(jEnv,"+++ unsupported type in CIMProperty.property");             throwCIMException(jEnv,"+++ unsupported type in CIMProperty.property");
          }          }
       }       }
  
       jEnv->ReleaseStringUTFChars(jN,str);        jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
   
       return DEBUG_ConvertCToJava (CIMProperty*, jint, cp);  
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return -1;     jEnv->ReleaseStringUTFChars(jN,str);
   
      return jCp;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setValue JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setValue
Line 2511 
Line 2663 
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);    const char  *str = jEnv->GetStringUTFChars(jN,NULL);
  
    cp->setName(CIMName(str));    cp->setName(CIMName(str));
   
    jEnv->ReleaseStringUTFChars(jN,str);    jEnv->ReleaseStringUTFChars(jN,str);
 } }
  
Line 2623 
Line 2776 
       (JNIEnv *jEnv, jobject jThs, jint jQ, jstring jN)       (JNIEnv *jEnv, jobject jThs, jint jQ, jstring jN)
 { {
    CIMQualifierDecl *qt  = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);    CIMQualifierDecl *qt  = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);
    CIMQualifierDecl *nqt;  
    const char       *str = jEnv->GetStringUTFChars(jN,NULL);    const char       *str = jEnv->GetStringUTFChars(jN,NULL);
      jint              jret = 0;
  
    nqt=qt;  
    if (qt->isUninitialized())    if (qt->isUninitialized())
       nqt=new CIMQualifierDecl(CIMName(str),CIMValue(),CIMScope());     {
         CIMQualifierDecl *nqt = new CIMQualifierDecl(CIMName(str),CIMValue(),CIMScope());
   
         jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, nqt);
      }
    else    else
      {
       qt->setName(CIMName(str));       qt->setName(CIMName(str));
   
         CIMQualifierDecl *nqt = new CIMQualifierDecl(*qt);
   
         jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, nqt);
      }
   
    jEnv->ReleaseStringUTFChars(jN,str);    jEnv->ReleaseStringUTFChars(jN,str);
  
    return DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, nqt);     return jret;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setValue JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setValue
Line 2716 
Line 2879 
       dt=new CIMDateTime();       dt=new CIMDateTime();
    else    else
       dt=new CIMDateTime(String(str));       dt=new CIMDateTime(String(str));
   
    jEnv->ReleaseStringUTFChars(jN,str);    jEnv->ReleaseStringUTFChars(jN,str);
  
    return DEBUG_ConvertCToJava (CIMDateTime*, jint, dt);    return DEBUG_ConvertCToJava (CIMDateTime*, jint, dt);
Line 2759 
Line 2923 
 { {
    CIMMethod *cm = DEBUG_ConvertJavaToC (jint, CIMMethod*, jM);    CIMMethod *cm = DEBUG_ConvertJavaToC (jint, CIMMethod*, jM);
  
    return DEBUG_ConvertCToJava (CIMType, jint, cm->getType());     return DEBUG_ConvertCToJava (CIMType, jint, new CIMType (cm->getType()));
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize
Line 2999 
Line 3163 
    for (jsize i=0;i<len;i++) {    for (jsize i=0;i<len;i++) {
       jstring jsA=(jstring)jEnv->GetObjectArrayElement(jstringA,i);       jstring jsA=(jstring)jEnv->GetObjectArrayElement(jstringA,i);
       const char *str=jEnv->GetStringUTFChars(jsA,NULL);       const char *str=jEnv->GetStringUTFChars(jsA,NULL);
   
       strA.append(String(str));       strA.append(String(str));
   
       jEnv->ReleaseStringUTFChars(jsA,str);       jEnv->ReleaseStringUTFChars(jsA,str);
    }    }
  
Line 3071 
Line 3237 
       case CIMTYPE_BOOLEAN:       case CIMTYPE_BOOLEAN:
          Boolean bo;          Boolean bo;
          cv->get(bo);          cv->get(bo);
          return jEnv->NewObject(classRefs[1],instanceMethodIDs[1],bo);           return jEnv->NewObject(JMPIjvm::jv.BooleanClassRef,JMPIjvm::jv.BooleanNewZ,bo);
          break;          break;
       case CIMTYPE_SINT8:       case CIMTYPE_SINT8:
          Sint8 s8;          Sint8 s8;
          cv->get(s8);          cv->get(s8);
          return jEnv->NewObject(classRefs[2],instanceMethodIDs[2],s8);           return jEnv->NewObject(JMPIjvm::jv.ByteClassRef,JMPIjvm::jv.ByteNewB,s8);
          break;          break;
       case CIMTYPE_UINT8:       case CIMTYPE_UINT8:
          Uint8 u8;          Uint8 u8;
          cv->get(u8);          cv->get(u8);
          return jEnv->NewObject(classRefs[8],instanceMethodIDs[8],u8);           return jEnv->NewObject(JMPIjvm::jv.UnsignedInt8ClassRef,JMPIjvm::jv.UnsignedInt8NewS,u8);
          break;          break;
       case CIMTYPE_SINT16:       case CIMTYPE_SINT16:
          Sint16 s16;          Sint16 s16;
          cv->get(s16);          cv->get(s16);
          return jEnv->NewObject(classRefs[3],instanceMethodIDs[3],s16);           return jEnv->NewObject(JMPIjvm::jv.ShortClassRef,JMPIjvm::jv.ShortNewS,s16);
          break;          break;
       case CIMTYPE_UINT16:       case CIMTYPE_UINT16:
          Uint16 u16;          Uint16 u16;
          cv->get(u16);          cv->get(u16);
          return jEnv->NewObject(classRefs[9],instanceMethodIDs[9],u16);           return jEnv->NewObject(JMPIjvm::jv.UnsignedInt16ClassRef,JMPIjvm::jv.UnsignedInt16NewI,u16);
          break;          break;
       case CIMTYPE_SINT32:       case CIMTYPE_SINT32:
          Sint32 s32;          Sint32 s32;
          cv->get(s32);          cv->get(s32);
          return jEnv->NewObject(classRefs[4],instanceMethodIDs[4],s32);           return jEnv->NewObject(JMPIjvm::jv.IntegerClassRef,JMPIjvm::jv.IntegerNewI,s32);
          break;          break;
       case CIMTYPE_UINT32:       case CIMTYPE_UINT32:
          Uint32 u32;          Uint32 u32;
          cv->get(u32);          cv->get(u32);
          return jEnv->NewObject(classRefs[10],instanceMethodIDs[10],u32);           return jEnv->NewObject(JMPIjvm::jv.UnsignedInt32ClassRef,JMPIjvm::jv.UnsignedInt32NewJ,u32);
          break;          break;
       case CIMTYPE_SINT64:       case CIMTYPE_SINT64:
          Sint64 s64;          Sint64 s64;
          cv->get(s64);          cv->get(s64);
          return jEnv->NewObject(classRefs[5],instanceMethodIDs[5],s64);           return jEnv->NewObject(JMPIjvm::jv.LongClassRef,JMPIjvm::jv.LongNewJ,s64);
          break;          break;
       case CIMTYPE_UINT64: {       case CIMTYPE_UINT64: {
             Uint64 u64;             Uint64 u64;
             cv->get(u64);             cv->get(u64);
             jobject big=jEnv->CallStaticObjectMethod(classRefs[14],staticMethodIDs[0],u64);              jobject big=jEnv->CallStaticObjectMethod(JMPIjvm::jv.BigIntegerClassRef,JMPIjvm::jv.BigIntegerValueOf,u64);
             return jEnv->NewObject(classRefs[11],instanceMethodIDs[11],big);              return jEnv->NewObject(JMPIjvm::jv.UnsignedInt64ClassRef,JMPIjvm::jv.UnsignedInt64NewBi,big);
          }          }
          break;          break;
       case CIMTYPE_REAL32:       case CIMTYPE_REAL32:
          float f;          float f;
          cv->get(f);          cv->get(f);
          return jEnv->NewObject(classRefs[6],instanceMethodIDs[6],f);           return jEnv->NewObject(JMPIjvm::jv.FloatClassRef,JMPIjvm::jv.FloatNewF,f);
          break;          break;
       case CIMTYPE_REAL64:       case CIMTYPE_REAL64:
          double d;          double d;
          cv->get(d);          cv->get(d);
          return jEnv->NewObject(classRefs[7],instanceMethodIDs[7],d);           return jEnv->NewObject(JMPIjvm::jv.DoubleClassRef,JMPIjvm::jv.DoubleNewD,d);
          break;          break;
       case CIMTYPE_STRING: {       case CIMTYPE_STRING: {
             String s;             String s;
Line 3137 
Line 3303 
             CIMObjectPath ref;             CIMObjectPath ref;
             cv->get(ref);             cv->get(ref);
             jint jOp = DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(ref));             jint jOp = DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(ref));
             return jEnv->NewObject(classRefs[12],instanceMethodIDs[12],jOp);              return jEnv->NewObject(JMPIjvm::jv.CIMObjectPathClassRef,JMPIjvm::jv.CIMObjectPathNewI,jOp);
          }          }
          break;          break;
       case CIMTYPE_CHAR16:       case CIMTYPE_CHAR16:
Line 3147 
Line 3313 
             CIMDateTime dt;             CIMDateTime dt;
             cv->get(dt);             cv->get(dt);
             jint jDT = DEBUG_ConvertCToJava (CIMDateTime*, jint, new CIMDateTime(dt));             jint jDT = DEBUG_ConvertCToJava (CIMDateTime*, jint, new CIMDateTime(dt));
             return jEnv->NewObject(classRefs[24],instanceMethodIDs[35],jDT);              return jEnv->NewObject(JMPIjvm::jv.CIMDateTimeClassRef,JMPIjvm::jv.CIMDateTimeNewI,jDT);
          }          }
          break;          break;
       case CIMTYPE_OBJECT:       case CIMTYPE_OBJECT:
Line 3163 
Line 3329 
             Array<Boolean> bo;             Array<Boolean> bo;
             cv->get(bo);             cv->get(bo);
             int s=bo.size();             int s=bo.size();
             jobjectArray jbooleanA=(jobjectArray)jEnv->NewObjectArray(s,classRefs[1],0);              jobjectArray jbooleanA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.BooleanClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jbooleanA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jbooleanA, i,
                   jEnv->NewObject(classRefs[1],instanceMethodIDs[1],bo[i]));                    jEnv->NewObject(JMPIjvm::jv.BooleanClassRef,JMPIjvm::jv.BooleanNewZ,bo[i]));
             return jbooleanA;             return jbooleanA;
          }          }
          break;          break;
Line 3173 
Line 3339 
             Array<Sint8> s8;             Array<Sint8> s8;
             cv->get(s8);             cv->get(s8);
             int s=s8.size();             int s=s8.size();
             jobjectArray jbyteA=(jobjectArray)jEnv->NewObjectArray(s,classRefs[2],0);              jobjectArray jbyteA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.ByteClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jbyteA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jbyteA, i,
                jEnv->NewObject(classRefs[2],instanceMethodIDs[2],s8[i]));                 jEnv->NewObject(JMPIjvm::jv.ByteClassRef,JMPIjvm::jv.ByteNewB,s8[i]));
             return jbyteA;             return jbyteA;
          }          }
          break;          break;
Line 3183 
Line 3349 
             Array<Uint8> u8;             Array<Uint8> u8;
             cv->get(u8);             cv->get(u8);
             int s=u8.size();             int s=u8.size();
             jobjectArray jshortA=(jobjectArray)jEnv->NewObjectArray(s,classRefs[8],0);              jobjectArray jshortA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.UnsignedInt8ClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jshortA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jshortA, i,
                jEnv->NewObject(classRefs[8],instanceMethodIDs[8],u8[i]));                 jEnv->NewObject(JMPIjvm::jv.UnsignedInt8ClassRef,JMPIjvm::jv.UnsignedInt8NewS,u8[i]));
             return jshortA;             return jshortA;
          }          }
          break;          break;
Line 3193 
Line 3359 
             Array<Sint16> s16;             Array<Sint16> s16;
             cv->get(s16);             cv->get(s16);
             int s=s16.size();             int s=s16.size();
             jobjectArray jshortA=(jobjectArray)jEnv->NewObjectArray(s,classRefs[3],0);              jobjectArray jshortA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.ShortClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jshortA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jshortA, i,
                jEnv->NewObject(classRefs[3],instanceMethodIDs[3],s16[i]));                 jEnv->NewObject(JMPIjvm::jv.ShortClassRef,JMPIjvm::jv.ShortNewS,s16[i]));
             return jshortA;             return jshortA;
          }          }
          break;          break;
Line 3203 
Line 3369 
             Array<Uint16> u16;             Array<Uint16> u16;
             cv->get(u16);             cv->get(u16);
             int s=u16.size();             int s=u16.size();
             jobjectArray jintA=(jobjectArray)jEnv->NewObjectArray(s,classRefs[9],0);              jobjectArray jintA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.UnsignedInt16ClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jintA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jintA, i,
                jEnv->NewObject(classRefs[9],instanceMethodIDs[9],u16[i]));                 jEnv->NewObject(JMPIjvm::jv.UnsignedInt16ClassRef,JMPIjvm::jv.UnsignedInt16NewI,u16[i]));
             return jintA;             return jintA;
          }          }
          break;          break;
Line 3213 
Line 3379 
             Array<Sint32> s32;             Array<Sint32> s32;
             cv->get(s32);             cv->get(s32);
             int s=s32.size();             int s=s32.size();
             jobjectArray jintA=(jobjectArray)jEnv->NewObjectArray(s,classRefs[4],0);              jobjectArray jintA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.IntegerClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jintA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jintA, i,
                jEnv->NewObject(classRefs[4],instanceMethodIDs[4],s32[i]));                 jEnv->NewObject(JMPIjvm::jv.IntegerClassRef,JMPIjvm::jv.IntegerNewI,s32[i]));
             return jintA;             return jintA;
          }          }
          break;          break;
Line 3223 
Line 3389 
             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,classRefs[10],0);              jobjectArray jlongA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.UnsignedInt32ClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jlongA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jlongA, i,
                jEnv->NewObject(classRefs[10],instanceMethodIDs[10],u32[i]));                 jEnv->NewObject(JMPIjvm::jv.UnsignedInt32ClassRef,JMPIjvm::jv.UnsignedInt32NewJ,u32[i]));
             return jlongA;             return jlongA;
          }          }
          break;          break;
Line 3233 
Line 3399 
             Array<Sint64> s64;             Array<Sint64> s64;
             cv->get(s64);             cv->get(s64);
             int s=s64.size();             int s=s64.size();
             jobjectArray jlongA=(jobjectArray)jEnv->NewObjectArray(s,classRefs[5],0);              jobjectArray jlongA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.LongClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jlongA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jlongA, i,
                jEnv->NewObject(classRefs[5],instanceMethodIDs[5],s64[i]));                 jEnv->NewObject(JMPIjvm::jv.LongClassRef,JMPIjvm::jv.LongNewJ,s64[i]));
             return jlongA;             return jlongA;
          }          }
          break;          break;
Line 3246 
Line 3412 
             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,classRefs[6],0);              jobjectArray jfloatA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.FloatClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jfloatA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jfloatA, i,
                jEnv->NewObject(classRefs[6],instanceMethodIDs[6],r32[i]));                 jEnv->NewObject(JMPIjvm::jv.FloatClassRef,JMPIjvm::jv.FloatNewF,r32[i]));
             return jfloatA;             return jfloatA;
          }          }
          break;          break;
Line 3256 
Line 3422 
             Array<Real64> r64;             Array<Real64> r64;
             cv->get(r64);             cv->get(r64);
             int s=r64.size();             int s=r64.size();
             jobjectArray jdoubleA=(jobjectArray)jEnv->NewObjectArray(s,classRefs[7],0);              jobjectArray jdoubleA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.DoubleClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jdoubleA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jdoubleA, i,
                jEnv->NewObject(classRefs[7],instanceMethodIDs[7],r64[i]));                 jEnv->NewObject(JMPIjvm::jv.DoubleClassRef,JMPIjvm::jv.DoubleNewD,r64[i]));
             return jdoubleA;             return jdoubleA;
          }          }
          break;          break;
Line 3266 
Line 3432 
             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,classRefs[22],0);              jobjectArray jstringA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.StringClassRef,0);
             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jstringA, i,             for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jstringA, i,
                jEnv->NewStringUTF(str[i].getCString()));                jEnv->NewStringUTF(str[i].getCString()));
             return jstringA;             return jstringA;
Line 3335 
Line 3501 
    }    }
    Sint32 p=hostName_.reverseFind(':');    Sint32 p=hostName_.reverseFind(':');
    if (p>=0) {    if (p>=0) {
       if (isdigit(hostName_[p+1]))        if ((hostName_[p+1] >= '0') && (hostName_[p+1] <= '9'))
          port_=atoi(hostName_.subString(p+1).getCString());          port_=atoi(hostName_.subString(p+1).getCString());
       hostName_.remove(p);       hostName_.remove(p);
    }    }
Line 3410 
Line 3576 
  
    cNs->port_=0;    cNs->port_=0;
    cNs->hostName_=str;    cNs->hostName_=str;
   
    jEnv->ReleaseStringUTFChars(jHn,str);    jEnv->ReleaseStringUTFChars(jHn,str);
 } }
  
Line 3420 
Line 3587 
    const char *str = jEnv->GetStringUTFChars(jN,NULL);    const char *str = jEnv->GetStringUTFChars(jN,NULL);
  
    cNs->nameSpace_=str;    cNs->nameSpace_=str;
   
    jEnv->ReleaseStringUTFChars(jN,str);    jEnv->ReleaseStringUTFChars(jN,str);
 } }
  
Line 3521 
Line 3689 
   (JNIEnv *jEnv, jobject jThs, jint jNs, jstring jUn, jstring jPw)   (JNIEnv *jEnv, jobject jThs, jint jNs, jstring jUn, jstring jPw)
 { {
    _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);    _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);
   
    const char *un=jEnv->GetStringUTFChars(jUn,NULL);    const char *un=jEnv->GetStringUTFChars(jUn,NULL);
    const char *pw=jEnv->GetStringUTFChars(jPw,NULL);    const char *pw=jEnv->GetStringUTFChars(jPw,NULL);
      jint        jCc = 0;
  
    try {    try {
       JMPIjvm::cacheIDs(jEnv);       JMPIjvm::cacheIDs(jEnv);
   
       CIMClient *cc=new CIMClient();       CIMClient *cc=new CIMClient();
   
       cc->connect(cNs->hostName(),cNs->port(),un,pw);       cc->connect(cNs->hostName(),cNs->port(),un,pw);
       jEnv->ReleaseStringUTFChars(jUn,un);  
       jEnv->ReleaseStringUTFChars(jPw,pw);        jCc = DEBUG_ConvertCToJava (CIMClient*, jint, cc);
       return DEBUG_ConvertCToJava (CIMClient*, jint, cc);  
    }    }
    Catch(jEnv);    Catch(jEnv);
    return 0;  
      jEnv->ReleaseStringUTFChars(jUn,un);
      jEnv->ReleaseStringUTFChars(jPw,pw);
   
      return jCc;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1disconnect JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1disconnect
Line 3653 
Line 3826 
  
    try {    try {
       checkNs(cop,jNs);       checkNs(cop,jNs);
       Array<CIMQualifierDecl> enm=cCc->enumerateQualifiers(  
          cop->getNameSpace());        Array<CIMQualifierDecl> enm=cCc->enumerateQualifiers(cop->getNameSpace());
   
       return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jint, new Array<CIMQualifierDecl>(enm));       return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jint, new Array<CIMQualifierDecl>(enm));
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 3672 
Line 3846 
  
    try {    try {
       checkNs(cop,jNs);       checkNs(cop,jNs);
       CIMInstance inst=cCc->getInstance(cop->getNameSpace(),*cop,(Boolean)lo,  
                 (Boolean)iq,(Boolean)ic,pl);        CIMInstance inst=cCc->getInstance(cop->getNameSpace(),
                                           *cop,
                                           (Boolean)lo,
                                           (Boolean)iq,
                                           (Boolean)ic,
                                           pl);
   
       return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance(inst));       return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance(inst));
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 3810 
Line 3990 
    Catch(jEnv);    Catch(jEnv);
 } }
  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getProperty JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getProperty
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jPn)   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jPn)
 { {
Line 3818 
Line 3997 
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
    const char    *str = jEnv->GetStringUTFChars(jPn,NULL);    const char    *str = jEnv->GetStringUTFChars(jPn,NULL);
    CIMName        pName(str);    CIMName        pName(str);
      jint           jCv = 0;
  
    jEnv->ReleaseStringUTFChars(jPn,str);  
    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));
       return DEBUG_ConvertCToJava (CIMValue*, jint, val);  
         jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val);
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;     jEnv->ReleaseStringUTFChars(jPn,str);
   
      return jCv;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty
Line 3839 
Line 4022 
    const char    *str = jEnv->GetStringUTFChars(jPn,NULL);    const char    *str = jEnv->GetStringUTFChars(jPn,NULL);
    CIMName        pName(str);    CIMName        pName(str);
  
    jEnv->ReleaseStringUTFChars(jPn,str);  
    try {    try {
       checkNs(cop,jNs);       checkNs(cop,jNs);
       cCc->setProperty(cop->getNameSpace(),*cop,pName,*val);       cCc->setProperty(cop->getNameSpace(),*cop,pName,*val);
    }    }
    Catch(jEnv);    Catch(jEnv);
   
      jEnv->ReleaseStringUTFChars(jPn,str);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod
Line 3854 
Line 4038 
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
    const char    *str = jEnv->GetStringUTFChars(jMn,NULL);    const char    *str = jEnv->GetStringUTFChars(jMn,NULL);
    CIMName        method(str);    CIMName        method(str);
      jint                  jCv = 0;
    jEnv->ReleaseStringUTFChars(jMn,str);  
   
    Array<CIMParamValue> in;    Array<CIMParamValue> in;
    Array<CIMParamValue> out;    Array<CIMParamValue> out;
  
    for (int i=0,m=jEnv->CallIntMethod(jIn,instanceMethodIDs[28]); i<m; i++) {     for (int i=0,m=jEnv->CallIntMethod(jIn,JMPIjvm::jv.VectorSize); i<m; i++) {
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        jobject jProp=jEnv->CallObjectMethod(jIn,instanceMethodIDs[16],i);         jobject jProp=jEnv->CallObjectMethod(jIn,JMPIjvm::jv.VectorElementAt,i);
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        jint         jp = jEnv->CallIntMethod(jProp,instanceMethodIDs[29]);         jint         jp = jEnv->CallIntMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);
        CIMProperty *p  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);        CIMProperty *p  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);
  
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        in.append(CIMParamValue(p->getName().getString(),p->getValue()));        in.append(CIMParamValue(p->getName().getString(),p->getValue()));
    }    }
   
    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++) {
Line 3882 
Line 4066 
          const CIMValue       v    = parm.getValue();          const CIMValue       v    = parm.getValue();
          CIMProperty         *p    = new CIMProperty(parm.getParameterName(),v,v.getArraySize());          CIMProperty         *p    = new CIMProperty(parm.getParameterName(),v,v.getArraySize());
          jint                 jp   = DEBUG_ConvertCToJava (CIMProperty*, jint, p);          jint                 jp   = DEBUG_ConvertCToJava (CIMProperty*, jint, p);
            jobject              prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jp);
  
          jobject prop=jEnv->NewObject(classRefs[15],instanceMethodIDs[14],jp);           jEnv->CallVoidMethod(jOut,JMPIjvm::jv.VectorAddElement,prop);
   
          jEnv->CallVoidMethod(jOut,instanceMethodIDs[15],prop);  
       }       }
       return DEBUG_ConvertCToJava (CIMValue*, jint, val);  
         jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val);
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;     jEnv->ReleaseStringUTFChars(jMn,str);
   
      return jCv;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod24 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod24
Line 3902 
Line 4088 
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
    const char    *str = jEnv->GetStringUTFChars(jMn,NULL);    const char    *str = jEnv->GetStringUTFChars(jMn,NULL);
    CIMName        method(str);    CIMName        method(str);
      jint                  jCv = 0;
    jEnv->ReleaseStringUTFChars(jMn,str);  
   
    Array<CIMParamValue> in;    Array<CIMParamValue> in;
    Array<CIMParamValue> out;    Array<CIMParamValue> out;
  
Line 3914 
Line 4098 
        jobject jArg=jEnv->GetObjectArrayElement(jIn,i);        jobject jArg=jEnv->GetObjectArrayElement(jIn,i);
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        jint           jp = jEnv->CallIntMethod(jArg,instanceMethodIDs[39]);         jint           jp = jEnv->CallIntMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);
        CIMParamValue *p  = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jp);        CIMParamValue *p  = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jp);
  
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
Line 3926 
Line 4110 
       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(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {
          const CIMParamValue &parm  = out[i];           CIMParamValue *parm  = new CIMParamValue (out[i]);
          jint                 jParm = DEBUG_ConvertCToJava (const CIMParamValue*, jint, &parm);           jint           jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);
          jEnv->SetObjectArrayElement(jOut,i,  
             jEnv->NewObject(classRefs[29],instanceMethodIDs[40],jParm));           jEnv->SetObjectArrayElement(jOut,
                                        i,
                                        jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));
       }       }
       return DEBUG_ConvertCToJava (CIMValue*, jint, val);        jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val);
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;     jEnv->ReleaseStringUTFChars(jMn,str);
   
      return jCv;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery
Line 3956 
Line 4144 
    jEnv->ReleaseStringUTFChars(jQuery,str);    jEnv->ReleaseStringUTFChars(jQuery,str);
  
    str=jEnv->GetStringUTFChars(jQl,NULL);    str=jEnv->GetStringUTFChars(jQl,NULL);
   
    String ql(str);    String ql(str);
  
    jEnv->ReleaseStringUTFChars(jQl,str);    jEnv->ReleaseStringUTFChars(jQl,str);
Line 4174 
Line 4363 
             continue;             continue;
          String x=ns+"/"+n;          String x=ns+"/"+n;
          jstring str=jEnv->NewStringUTF(x.getCString());          jstring str=jEnv->NewStringUTF(x.getCString());
          jEnv->CallVoidMethod(jVec,instanceMethodIDs[15],str);           jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,str);
       }       }
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 4207 
Line 4396 
    Catch(jEnv);    Catch(jEnv);
 } }
  
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1finalize
      (JNIEnv *jEnv, jobject jThs, jint jCc)
   {
      CIMClient  *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
   
      delete cCc;
   
      DEBUG_ConvertCleanup (jint, jCc);
   }
   
 } // extern "C" } // extern "C"
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.22  
changed lines
  Added in v.1.28

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2