diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jClassifConv.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jClassifConv.java index a4fb39ec8c782f5c1f1e7aaffe69e2e65b5f9599..53d968fbea9838f632b763145247ef333b69273c 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jClassifConv.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jClassifConv.java @@ -27,18 +27,22 @@ public class jClassifConv { public jClassifConv () { - initClassifConv(); + try { + initClassifConv(); + } catch (Exception ex) { + System.out.println("Error during init: "+ex); + } } - private native void initClassifConv(); - public native short get(String jarg1); - public native String get(short jarg1); + private native void initClassifConv() throws Exception; + public native short get(String jarg1) throws Exception; + public native String get(short jarg1) throws Exception; // java doesn't implement reference arguments, so the // initial call bool get(long type, string typename) // can't be made easily here/ Choice has been made to gather the complete // list in the c++ wrapper and return it completely here. - public native HashMap<Short,String> getTypes(); - public native void top(); - public native boolean next(); + public native HashMap<Short,String> getTypes() throws Exception; + public native void top() throws Exception; + public native boolean next() throws Exception; } diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jInitCPPLogger.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jInitCPPLogger.java index 68f585faf03037ed35a405e481adb184ce250ac1..86c96879049cb62383afea67c881f4ae9b8ade7d 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jInitCPPLogger.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jInitCPPLogger.java @@ -25,9 +25,13 @@ package nl.astron.lofar.sas.otb.jotdb2; public class jInitCPPLogger { public jInitCPPLogger(String logName) { - initLogger(logName); + try { + initLogger(logName); + } catch (Exception ex) { + System.out.println("Error during initLogger :" +ex); + } } - private native void initLogger(String logName); + private native void initLogger(String logName) throws Exception; } diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jOTDBconnection.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jOTDBconnection.java index a4b3a2fcd3e9f5c421408c71e121d799c6f57884..ceccf3d78b7beb2fee0da086bd8954d344c4b91b 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jOTDBconnection.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jOTDBconnection.java @@ -22,41 +22,48 @@ package nl.astron.lofar.sas.otb.jotdb2; import java.util.Vector; -import java.util.Date; public class jOTDBconnection { // Just creates an object and registers the connection parameters. public jOTDBconnection (String username, String passwd, String database) { - initOTDBconnection (username, passwd, database); + try { + initOTDBconnection (username, passwd, database); + } catch (Exception ex) { + System.out.println("Error during connection init :" + ex); + } } public jOTDBconnection() { - initOTDBconnection("paulus", "boskabouter", "otdbtest"); + try { + initOTDBconnection("paulus", "boskabouter", "otdbtest"); + } catch (Exception ex) { + System.out.println("Error during connection init :" + ex); + } } // Create a OTDBconnection instance - private native void initOTDBconnection (String username, String passwd, String database); + private native void initOTDBconnection (String username, String passwd, String database) throws Exception; // To test if we are (still) connected. - public native boolean isConnected(); + public native boolean isConnected() throws Exception; // To connect or reconnect in case the connection was lost - public native boolean connect(); + public native boolean connect() throws Exception; // get OTDBtree of one specific tree - public native jOTDBtree getTreeInfo (int atreeID, boolean isMomID); + public native jOTDBtree getTreeInfo (int atreeID, boolean isMomID)throws Exception ; - public native Vector getStateList(int atreeID, boolean isMomID ,String beginDate, String endDate); + public native Vector getStateList(int atreeID, boolean isMomID ,String beginDate, String endDate) throws Exception; // To get a list of all OTDB trees available in the database. - public native Vector getTreeList(short treeType, short classifiType); + public native Vector getTreeList(short treeType, short classifiType) throws Exception; - public native String errorMsg(); + public native String errorMsg() throws Exception; - public native int getAuthToken(); + public native int getAuthToken() throws Exception; } diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jParamTypeConv.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jParamTypeConv.java index bb8b2334bfba66e652fca07c386e3b266e5e9bc8..927d9b9d5dd41f30df263b629103dd4b8bc10b36 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jParamTypeConv.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jParamTypeConv.java @@ -27,18 +27,22 @@ public class jParamTypeConv { public jParamTypeConv () { - initParamTypeConv(); + try { + initParamTypeConv(); + } catch (Exception ex) { + System.out.println("Error during init :"+ex); + } } - private native void initParamTypeConv(); - public native short get(String jarg1); - public native String get(short jarg1); + private native void initParamTypeConv() throws Exception; + public native short get(String jarg1) throws Exception; + public native String get(short jarg1) throws Exception; // java doesn't implement reference arguments, so the // initial call bool get(long type, string typename) // can't be made easily here/ Choice has been made to gather the complete // list in the c++ wrapper and return it completely here. - public native HashMap<Short,String> getTypes(); - public native void top(); - public native boolean next(); + public native HashMap<Short,String> getTypes() throws Exception; + public native void top() throws Exception; + public native boolean next() throws Exception; } diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeMaintenance.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeMaintenance.java index 339420907fbe2945b37825bb99808fc95cc9e994..62eec6f8440f6cd96ceb1ed781c82b88300bd371 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeMaintenance.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeMaintenance.java @@ -28,38 +28,41 @@ public class jTreeMaintenance public jTreeMaintenance () { - initTreeMaintenance (); + try { + initTreeMaintenance (); + } catch (Exception ex) { + System.out.println("Error during jTreeMaintenance init : " +ex); + } } - private native void initTreeMaintenance (); + private native void initTreeMaintenance () throws Exception; //# --- PIC maintenance --- // Once in a while a new PIC tree will be loaded from PVSS which manages // the master PIC. The master PIC will be in a exported ASCII file, with // loadMasterFile this file can be added. // Returns 0 on failure, otherwise the ID of the new tree is returned. - public native int loadMasterFile (String filename); + public native int loadMasterFile (String filename) throws Exception; //# --- VIC maintenance : Components --- // A VIC tree is build up from single components. The definitions of the // components can loaded from a file with this call - public native int loadComponentFile (String filename); + public native int loadComponentFile (String filename) throws Exception; // Find the top-components in the components table. - public native Vector<jVICnodeDef> getComponentList (String name , boolean topOnly); + public native Vector<jVICnodeDef> getComponentList (String name , boolean topOnly) throws Exception; // Get the node definition of a VC node - public native jVICnodeDef getComponentNode(int aNodeID) - ; + public native jVICnodeDef getComponentNode(int aNodeID) throws Exception; // Get parameterlist of the component - public native Vector<jOTDBparam> getComponentParams(int aNodeID); + public native Vector<jOTDBparam> getComponentParams(int aNodeID) throws Exception; // Save new node or update the limits and description fields of the node - public native boolean saveComponentNode(jVICnodeDef aNode); + public native boolean saveComponentNode(jVICnodeDef aNode) throws Exception; // test if component is a top-component - public native boolean isTopComponent(int aNodeID); + public native boolean isTopComponent(int aNodeID) throws Exception; //# --- VIC maintenance : Templates --- // From a component tree a template tree can be constructed. In a template @@ -67,94 +70,94 @@ public class jTreeMaintenance // of nodes on the same level. // Returns 0 on failure, otherwise the ID of the new tree is returned. // ABOUT TO BECOME OBSOLETE WHEN OTB IS READY - public native int buildTemplateTree (int topNodeID, short aClassif); + public native int buildTemplateTree (int topNodeID, short aClassif) throws Exception; // Create a new OTDBtree record for an Template tree in the database // and return its treeID. - public native int newTemplateTree(); + public native int newTemplateTree() throws Exception; // Make a copy of an existing template tree. // Returns 0 on failure, otherwise the ID of the new tree is returned. - public native int copyTemplateTree (int aTreeID); + public native int copyTemplateTree (int aTreeID) throws Exception; // Get a single node from the VIC template tree - public native jOTDBnode getNode (int aTreeID, int aNodeID); + public native jOTDBnode getNode (int aTreeID, int aNodeID) throws Exception; // Get the parameter definition of a node - public native jOTDBparam getParam(int aTreeID,int aParamID); + public native jOTDBparam getParam(int aTreeID,int aParamID) throws Exception; // Save the parameter definition - public native boolean saveParam(jOTDBparam aParam); + public native boolean saveParam(jOTDBparam aParam) throws Exception; // Get a number of levels of children. - public native Vector getItemList (int aTreeID, int topNode, int depth); + public native Vector getItemList (int aTreeID, int topNode, int depth) throws Exception; // Get a list of nodes based on a namefragment. Use '%' as wildchar. - public native Vector getItemList (int aTreeID, String aNameFragment); + public native Vector getItemList (int aTreeID, String aNameFragment) throws Exception; // Duplicates the given node (and its parameters and children) // in the template database. The duplicate gets the new index. - public native int dupNode (int aTreeID, int orgNodeID, short newIndex); + public native int dupNode (int aTreeID, int orgNodeID, short newIndex) throws Exception; // Adds the given VIC Component under the given parent of a // template tree. - public native int addComponent (int compID,int treeID,int parentID); + public native int addComponent (int compID,int treeID,int parentID) throws Exception; // Updates the (vector of) OTDBnodes to the database. - public native boolean saveNode (jOTDBnode aNode); - public native boolean saveNodeList (Vector aNodeList); + public native boolean saveNode (jOTDBnode aNode) throws Exception; + public native boolean saveNodeList (Vector aNodeList) throws Exception; // Updates the (vector of) OTDBnodes to the database. - public native boolean deleteNode (jOTDBnode aNode); - public native boolean deleteNodeList (Vector aNodeList); + public native boolean deleteNode (jOTDBnode aNode) throws Exception; + public native boolean deleteNodeList (Vector aNodeList) throws Exception; // Evaluate the constraints from a (sub)tree. - public native boolean checkTreeConstraints (int aTreeID, int topNode); + public native boolean checkTreeConstraints (int aTreeID, int topNode) throws Exception; //# --- VIC maintenance : Hierarchical trees --- // From a template tree a fully instanciated tree can be build. // Returns 0 on failure, otherwise the ID of the new tree is returned. - public native int instanciateTree (int baseTree); + public native int instanciateTree (int baseTree) throws Exception; // Prune an instanciated tree to get loss of depricated values. - public native boolean pruneTree (int aTreeID, short pruningLevel); + public native boolean pruneTree (int aTreeID, short pruningLevel) throws Exception; // Export a VIC (sub)tree to a file. The user may choose in which format // the tree is exported: HTML, KeyValue List. public native boolean exportTree (int aTreeID,int topItem,String filename, - int outputFormat,boolean folded); + int outputFormat,boolean folded) throws Exception; //# --- Finally some general tree maintenance --- // Delete a tree (of any kind) from the database. - public native boolean deleteTree (int aTreeID); + public native boolean deleteTree (int aTreeID) throws Exception; // Retrieve the topNode of any tree - public native jOTDBnode getTopNode (int aTreeID); + public native jOTDBnode getTopNode (int aTreeID) throws Exception; // save modified OTDBtree information - public native boolean setMomInfo(int aTreeID, int momID, String campaign); + public native boolean setMomInfo(int aTreeID, int momID, String campaign) throws Exception; // Set the classification of any tree. - public native boolean setClassification (int aTreeID, short aClassification); + public native boolean setClassification (int aTreeID, short aClassification) throws Exception; // Set the state of any tree. When changing the state of a tree all // constraints/validations for the current type must be fulfilled. // When errors occur these can be retrieved with the errorMsg function. - public native boolean setTreeState (int aTreeID, short aState); + public native boolean setTreeState (int aTreeID, short aState) throws Exception; // Update the description of a tree. - public native boolean setDescription(int aTreeID,String aDescription); + public native boolean setDescription(int aTreeID,String aDescription) throws Exception; // Set the scheduling times of the tree - public native boolean setSchedule(int aTreeID, String aStartTime,String aStopTime); + public native boolean setSchedule(int aTreeID, String aStartTime,String aStopTime) throws Exception; // Whenever an error occurs in one the OTDB functions the message can // be retrieved with this function. - public native String errorMsg(); + public native String errorMsg() throws Exception; } diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeStateConv.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeStateConv.java index d93754e14942b54ac6edd7eb79f8ace8b66b9c34..39f42b73f57b6a0c20cf970c4c1fa012cb20a80b 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeStateConv.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeStateConv.java @@ -27,18 +27,22 @@ public class jTreeStateConv { public jTreeStateConv () { - initTreeStateConv(); + try { + initTreeStateConv(); + } catch (Exception ex) { + System.out.println("Error during TreeStateConv init :" + ex); + } } - private native void initTreeStateConv(); - public native short get(String jarg1); - public native String get(short jarg1); + private native void initTreeStateConv() throws Exception; + public native short get(String jarg1) throws Exception; + public native String get(short jarg1) throws Exception; // java doesn't implement reference arguments, so the // initial call bool get(long type, string typename) // can't be made easily here/ Choice has been made to gather the complete // list in the c++ wrapper and return it completely here. - public native HashMap<Short,String> getTypes(); - public native void top(); - public native boolean next(); + public native HashMap<Short,String> getTypes() throws Exception; + public native void top() throws Exception; + public native boolean next() throws Exception; } diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeTypeConv.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeTypeConv.java index 516790569641d0e582f7c80dc84dfb9bd4c5ce57..f383730f3bef68931868b598c933ea2c8ae75e20 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeTypeConv.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeTypeConv.java @@ -27,18 +27,22 @@ public class jTreeTypeConv { public jTreeTypeConv () { - initTreeTypeConv(); + try { + initTreeTypeConv(); + } catch (Exception ex) { + System.out.println("Error during TreeTypeConv init :"+ex); + } } - private native void initTreeTypeConv(); - public native short get(String jarg1); - public native String get(short jarg1); + private native void initTreeTypeConv() throws Exception; + public native short get(String jarg1) throws Exception; + public native String get(short jarg1) throws Exception; // java doesn't implement reference arguments, so the // initial call bool get(long type, string typename) // can't be made easily here/ Choice has been made to gather the complete // list in the c++ wrapper and return it completely here. - public native HashMap<Short,String> getTypes(); - public native void top(); - public native boolean next(); + public native HashMap<Short,String> getTypes() throws Exception; + public native void top() throws Exception; + public native boolean next() throws Exception; } diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeValue.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeValue.java index f744289e125989aa42c7030e08911a1551187128..d63c08c7e1aed401c3e11d71152a08c6dbafa2ae 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeValue.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jTreeValue.java @@ -43,13 +43,13 @@ public class jTreeValue // PVSS will continuously add value-changes to the offline PIC. // There two ways PVSS can do this. // The function returns false if the PIC node can not be found. - public native boolean addKVT( String key, String value, String time); - public native boolean addKVT(jOTDBvalue aKVT); + public native boolean addKVT( String key, String value, String time) throws Exception; + public native boolean addKVT(jOTDBvalue aKVT) throws Exception; // Note: This form will probably be used by SAS and OTB when committing // a list of modified node. - public native boolean addKVTlist(Vector<jOTDBvalue> aValueList); - // public native boolean addKVTparamSet(jParamterSet aPS); + public native boolean addKVTlist(Vector<jOTDBvalue> aValueList) throws Exception; + // public native boolean addKVTparamSet(jParamterSet aPS) throws Exception; //# SHM queries // With searchInPeriod a list of all valuechanges in the OTDB tree can @@ -63,14 +63,14 @@ public class jTreeValue int depth, String beginDate, String endDate, - boolean mostRecentlyOnly); + boolean mostRecentlyOnly) throws Exception; //# SAS queries // For scheduling the VIC tree on the OTDB tree SAS must know what // resources exist in the OTDB tree. This list can be retrieved with // this function. // TBW: Is this realy what SAS needs??? - public native Vector<jOTDBvalue> getSchedulableItems (int topNode); + public native Vector<jOTDBvalue> getSchedulableItems (int topNode) throws Exception; // Whenever an error occurs in one the OTDB functions the message can // be retrieved with this function. diff --git a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jUnitConv.java b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jUnitConv.java index dfedf4b6b145ffb4363b2f7db163a5b5be4e8c8d..d4612fb04218f38b59536daf51e6417b71e8bdca 100644 --- a/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jUnitConv.java +++ b/SAS/OTB/jOTDB2/src/nl/astron/lofar/sas/otb/jotdb2/jUnitConv.java @@ -27,18 +27,22 @@ public class jUnitConv { public jUnitConv () { - initUnitConv(); + try { + initUnitConv(); + } catch (Exception ex) { + System.out.println("Error during UnitConv init :"+ex); + } } - private native void initUnitConv(); - public native short get(String jarg1); - public native String get(short jarg1); + private native void initUnitConv() throws Exception; + public native short get(String jarg1) throws Exception; + public native String get(short jarg1) throws Exception; // java doesn't implement reference arguments, so the // initial call bool get(long type, string typename) // can't be made easily here/ Choice has been made to gather the complete // list in the c++ wrapper and return it completely here. - public native HashMap<Short,String> getTypes(); - public native void top(); - public native boolean next(); + public native HashMap<Short,String> getTypes() throws Exception; + public native void top() throws Exception; + public native boolean next() throws Exception; } diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jClassifConv.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jClassifConv.cc index 31663a08206527c108fe3d20c8833ccb3dd29b5a..2d6668ab8d45d651da085e5be384979e4b15a788 100644 --- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jClassifConv.cc +++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jClassifConv.cc @@ -45,9 +45,15 @@ extern OTDBconnection* theirConn; * Method: initClassifConv * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_initClassifConv(JNIEnv *, jobject) { +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_initClassifConv(JNIEnv *env, jobject) { - classifConv = new ClassifConv(theirConn); + try { + classifConv = new ClassifConv(theirConn); + } catch (exception &ex) { + cout << "Exception during new ClassifConv " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } } /* @@ -59,11 +65,17 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_get__L const char* chars = env->GetStringUTFChars (aConv, 0); const string str (chars); - - short ret = classifConv->get (str); - - env->ReleaseStringUTFChars (aConv, chars); - + short ret; + try { + ret = classifConv->get (str); + env->ReleaseStringUTFChars (aConv, chars); + } catch (exception &ex) { + cout << "Exception during ClassifConv::get("<< str << ") " << ex.what() << endl; + + env->ReleaseStringUTFChars (aConv, chars); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return ret; } @@ -73,7 +85,15 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_get__L * Signature: (S)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_get__S(JNIEnv *env, jobject, jshort aConv) { - jstring jstr = env->NewStringUTF (classifConv->get(aConv).c_str()); + + jstring jstr; + try { + jstr = env->NewStringUTF (classifConv->get(aConv).c_str()); + } catch (exception &ex) { + cout << "Exception during ClassifConv::get("<< aConv << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return jstr; } @@ -82,8 +102,7 @@ JNIEXPORT jstring JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_get__ * Method: getTypes * Signature: ()Ljava/util/HashMap; */ -JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_getT\ -ypes(JNIEnv *env, jobject) { +JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_getTypes(JNIEnv *env, jobject) { // Construct java Map @@ -108,22 +127,27 @@ ypes(JNIEnv *env, jobject) { if ( env->ExceptionOccurred() ) return 0; - classifConv->top(); - do { - classifType key; - string value; - - if (classifConv->get(key, value)) { - env->CallObjectMethod(result, put, env->NewObject(shortClass, - shortInit, - (jshort)key), - env->NewStringUTF(value.c_str())); - - if ( env->ExceptionOccurred() ) - return 0; - } - } while (classifConv->next()); - + try { + classifConv->top(); + do { + classifType key; + string value; + + if (classifConv->get(key, value)) { + env->CallObjectMethod(result, put, env->NewObject(shortClass, + shortInit, + (jshort)key), + env->NewStringUTF(value.c_str())); + + if ( env->ExceptionOccurred() ) + return 0; + } + } while (classifConv->next()); + } catch (exception &ex) { + cout << "Exception during ClassifConv::getTypes " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return result; } @@ -133,8 +157,14 @@ ypes(JNIEnv *env, jobject) { * Method: top * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_top(JNIEnv *, jobject) { - classifConv->top(); +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_top(JNIEnv *env, jobject) { + try { + classifConv->top(); + } catch (exception &ex) { + cout << "Exception during ClassifConv::top" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } } @@ -143,7 +173,14 @@ JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_top(JNIE * Method: next * Signature: ()Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_next(JNIEnv *, jobject) { - jboolean aBool=classifConv->next(); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jClassifConv_next(JNIEnv *env, jobject) { + jboolean aBool; + try { + aBool=classifConv->next(); + } catch (exception &ex) { + cout << "Exception during ClassifConv::next" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return aBool; } diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection.cc index 2bc5840e1dd632f0c676921fe4ecbb4ad19db988..7c7a15f4c69150aa97b7ebf80d9e1e240ba64f31 100644 --- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection.cc +++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection.cc @@ -48,29 +48,56 @@ JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_initO const string p (pass); const string d (db); - theirConn = new OTDBconnection(u, p, d); - - env->ReleaseStringUTFChars(username, user); - env->ReleaseStringUTFChars(passwd, pass); - env->ReleaseStringUTFChars(database, db); + try { + theirConn = new OTDBconnection(u, p, d); + env->ReleaseStringUTFChars(username, user); + env->ReleaseStringUTFChars(passwd, pass); + env->ReleaseStringUTFChars(database, db); + } catch (exception &ex) { + cout << "Exception during new OTDBconnection(" << u << "," << p << "," << d <<") : "<< ex.what() << endl; + + env->ReleaseStringUTFChars(username, user); + env->ReleaseStringUTFChars(passwd, pass); + env->ReleaseStringUTFChars(database, db); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } } -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_isConnected(JNIEnv *, jobject) { +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_isConnected(JNIEnv *env, jobject) { jboolean connected; - connected = theirConn->isConnected(); + try { + connected = theirConn->isConnected(); + } catch (exception &ex) { + cout << "Exception during OTDBconnection::connected "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return connected; } -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_connect(JNIEnv *, jobject) { +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_connect(JNIEnv *env, jobject) { jboolean connected; - connected = (jboolean)theirConn->connect(); + try { + connected = (jboolean)theirConn->connect(); + } catch (exception &ex) { + cout << "Exception during OTDBconnection::connect "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return connected; } JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_getTreeInfo(JNIEnv *env, jobject, jint treeID, jboolean isMomID) { - OTDBtree aTree = theirConn->getTreeInfo((int)treeID, isMomID); + OTDBtree aTree; + try { + aTree = theirConn->getTreeInfo((int)treeID, isMomID); + } catch (exception &ex) { + cout << "Exception during OTDBconnection::getTreeInfo(" << treeID << "," << isMomID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return convertOTDBtree(env, aTree); } @@ -80,56 +107,86 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_ge const char* bd = env->GetStringUTFChars (beginDate, 0); const char* ed = env->GetStringUTFChars (endDate, 0); - vector<TreeState> states = theirConn->getStateList(treeID, isMomID,time_from_string(bd), time_from_string(ed)); - - vector<TreeState>::iterator statesIterator; - - // Construct java Vector jobject statesVector; - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); - statesVector = env->NewObject(class_Vector, mid_Vector_cons); - jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); + try { + vector<TreeState> states = theirConn->getStateList(treeID, isMomID,time_from_string(bd), time_from_string(ed)); + vector<TreeState>::iterator statesIterator; + + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); + statesVector = env->NewObject(class_Vector, mid_Vector_cons); + jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); - for (statesIterator = states.begin(); statesIterator != states.end(); statesIterator++) - { + for (statesIterator = states.begin(); statesIterator != states.end(); statesIterator++) { env->CallObjectMethod(statesVector, mid_Vector_add,convertTreeState(env, *statesIterator )); } + env->ReleaseStringUTFChars(beginDate, bd); + env->ReleaseStringUTFChars(endDate, ed); + } catch (exception &ex) { + cout << "Exception during OTDBconnection::getStateList(" << treeID << "," << isMomID << "," << + time_from_string(bd) << "," << time_from_string(ed) << ") "<< ex.what() << endl; + + env->ReleaseStringUTFChars(beginDate, bd); + env->ReleaseStringUTFChars(endDate, ed); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return(statesVector); } JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_getTreeList(JNIEnv *env, jobject, jshort treeType, jshort classifType) { - vector<OTDBtree> trees = theirConn->getTreeList(treeType, classifType); - vector<OTDBtree>::iterator treeIterator; - - // Construct java Vector + jobject itemVector; - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); + try { + vector<OTDBtree> trees = theirConn->getTreeList(treeType, classifType); + vector<OTDBtree>::iterator treeIterator; + + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); - itemVector = env->NewObject(class_Vector, mid_Vector_cons); - jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); + itemVector = env->NewObject(class_Vector, mid_Vector_cons); + jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); - for (treeIterator = trees.begin(); treeIterator != trees.end(); treeIterator++) - { + for (treeIterator = trees.begin(); treeIterator != trees.end(); treeIterator++) { env->CallObjectMethod(itemVector, mid_Vector_add, convertOTDBtree(env, *treeIterator)); } + } catch (exception &ex) { + cout << "Exception during OTDBconnection::getTreeList(" << treeType << "," << classifType << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + + } return(itemVector); } JNIEXPORT jstring JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_errorMsg(JNIEnv *env, jobject) { - jstring jstr = env->NewStringUTF(theirConn->errorMsg().c_str()); + jstring jstr; + try { + jstr = env->NewStringUTF(theirConn->errorMsg().c_str()); + } catch (exception &ex) { + cout << "Exception during OTDBconnection::errorMsg " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return jstr; } -JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_getAuthToken(JNIEnv *, jobject) { - jint token = (jint)theirConn->getAuthToken(); +JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection_getAuthToken(JNIEnv *env, jobject) { + jint token; + try { + token = (jint)theirConn->getAuthToken(); + } catch (exception &ex) { + cout << "Exception during OTDBconnection::getAuthToken " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return token; } diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv.cc index a3870e70e1ccc61228bd53ca75561144c19077f5..0743ff87fcd4e17b927b2c85c512735b7d438d4c 100644 --- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv.cc +++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv.cc @@ -44,9 +44,15 @@ extern OTDBconnection* theirConn; * Method: initParamTypeConv * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_initParamTypeConv(JNIEnv *, jobject) { +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_initParamTypeConv(JNIEnv *env , jobject) { - paramTypeConv = new ParamTypeConv(theirConn); + try { + paramTypeConv = new ParamTypeConv(theirConn); + } catch (exception &ex) { + cout << "Exception during new ParamTypeConv) : "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } } /* @@ -58,10 +64,18 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_get_ const char* chars = env->GetStringUTFChars (aConv, 0); const string str (chars); + short ret; + + try { + ret = paramTypeConv->get (str); - short ret = paramTypeConv->get (str); - - env->ReleaseStringUTFChars (aConv, chars); + env->ReleaseStringUTFChars (aConv, chars); + } catch (exception &ex) { + cout << "Exception during ParamTypeConv::get(" << str << ") "<< ex.what() << endl; + + env->ReleaseStringUTFChars(aConv,chars); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return ret; } @@ -72,7 +86,16 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_get_ * Signature: (S)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_get__S(JNIEnv *env, jobject, jshort aConv) { - jstring jstr = env->NewStringUTF (paramTypeConv->get(aConv).c_str()); + + jstring jstr; + try { + jstr = env->NewStringUTF (paramTypeConv->get(aConv).c_str()); + } catch (exception &ex) { + cout << "Exception during ParamTypeConv::get(" << aConv << ") "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return jstr; } @@ -106,21 +129,27 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_get if ( env->ExceptionOccurred() ) return 0; - paramTypeConv->top(); - do { - paramType key; - string value; - - if (paramTypeConv->get(key, value)) { - env->CallObjectMethod(result, put, env->NewObject(shortClass, - shortInit, - (jshort)key), - env->NewStringUTF(value.c_str())); - - if ( env->ExceptionOccurred() ) - return 0; - } - } while (paramTypeConv->next()); + try { + paramTypeConv->top(); + do { + paramType key; + string value; + + if (paramTypeConv->get(key, value)) { + env->CallObjectMethod(result, put, env->NewObject(shortClass, + shortInit, + (jshort)key), + env->NewStringUTF(value.c_str())); + + if ( env->ExceptionOccurred() ) + return 0; + } + } while (paramTypeConv->next()); + } catch (exception &ex) { + cout << "Exception during ParamTypeConv::getTypes "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return result; @@ -131,8 +160,15 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_get * Method: top * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_top(JNIEnv *, jobject) { - paramTypeConv->top(); +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_top(JNIEnv *env, jobject) { + try { + paramTypeConv->top(); + } catch (exception &ex) { + cout << "Exception during ParamTypeConv::top "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + } @@ -141,7 +177,15 @@ JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_top(JN * Method: next * Signature: ()Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_next(JNIEnv *, jobject) { - jboolean aBool=paramTypeConv->next(); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jParamTypeConv_next(JNIEnv *env, jobject) { + jboolean aBool; + try { + aBool=paramTypeConv->next(); + } catch (exception &ex) { + cout << "Exception during ParamTypeConv::next "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return aBool; } diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance.cc index d3acb57e9ddc4cde729388e0ccd3c7e439f0b54d..592b0d1597f8131159b57e4272d78b8ddbed07b8 100644 --- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance.cc +++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance.cc @@ -37,8 +37,6 @@ using namespace LOFAR::OTDB; using namespace std; -//using std::string; -//using std::vector; extern OTDBconnection* theirConn; TreeMaintenance* theirTM; @@ -49,8 +47,15 @@ TreeMaintenance* theirTM; * Method: initTreeMaintenance * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_initTreeMaintenance (JNIEnv *, jobject) { - theirTM = new TreeMaintenance (theirConn); +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_initTreeMaintenance (JNIEnv *env, jobject) { + + try { + theirTM = new TreeMaintenance (theirConn); + } catch (exception &ex) { + cout << "Exception during new TreeMaintenance "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } } /* @@ -59,10 +64,22 @@ JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_init * Signature: (Ljava/lang/String;)I */ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_loadMasterFile(JNIEnv *env, jobject, jstring aName) { - jboolean isCopy; - const char* name = env->GetStringUTFChars (aName, &isCopy); - jint retVal = theirTM->loadMasterFile(name); - env->ReleaseStringUTFChars (aName, name); + + jint retVal; + const char* name; + try { + + jboolean isCopy; + name = env->GetStringUTFChars (aName, &isCopy); + retVal = theirTM->loadMasterFile(name); + env->ReleaseStringUTFChars (aName, name); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::loadMasterFile(" << name << ") " << ex.what() << endl; + env->ReleaseStringUTFChars (aName, name); + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return retVal; } @@ -73,11 +90,20 @@ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_load * Signature: (Ljava/lang/String;)I */ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_loadComponentFile(JNIEnv *env, jobject, jstring aName) { - jboolean isCopy; - const char* name = env->GetStringUTFChars (aName, &isCopy); - jint retVal = theirTM->loadComponentFile(name); - env->ReleaseStringUTFChars (aName, name); + jint retVal; + const char* name; + try { + jboolean isCopy; + name = env->GetStringUTFChars (aName, &isCopy); + retVal = theirTM->loadComponentFile(name); + env->ReleaseStringUTFChars (aName, name); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::loadComponentFile(" << name << ") " << ex.what() << endl; + env->ReleaseStringUTFChars (aName, name); + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return retVal; } @@ -88,23 +114,31 @@ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_load */ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_getComponentList(JNIEnv *env, jobject, jstring aName , jboolean topOnly) { - jboolean isCopy; - const char* name = env->GetStringUTFChars (aName, &isCopy); - vector<VICnodeDef> itemList = theirTM->getComponentList(name, topOnly); - env->ReleaseStringUTFChars (aName, name); + jobject itemVector; + const char* name; + try { + jboolean isCopy; + name = env->GetStringUTFChars (aName, &isCopy); + vector<VICnodeDef> itemList = theirTM->getComponentList(name, topOnly); + env->ReleaseStringUTFChars (aName, name); - vector<VICnodeDef>::iterator itemIterator; + vector<VICnodeDef>::iterator itemIterator; - // Construct java Vector - jobject itemVector; - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); - itemVector = env->NewObject(class_Vector, mid_Vector_cons); - jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); + itemVector = env->NewObject(class_Vector, mid_Vector_cons); + jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); - for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) - env->CallObjectMethod(itemVector, mid_Vector_add, convertVICnodeDef (env, *itemIterator)); - + for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) + env->CallObjectMethod(itemVector, mid_Vector_add, convertVICnodeDef (env, *itemIterator)); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::getComponentList(" << name << "," << topOnly << ") " << ex.what() << endl; + env->ReleaseStringUTFChars (aName, name); + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return itemVector; } @@ -115,7 +149,16 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_g * Signature: (I)Lnl/astron/lofar/sas/otb/jotdb2/jVICnodeDef; */ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_getComponentNode(JNIEnv *env, jobject, jint aNodeID) { - VICnodeDef aNodeDef = theirTM->getComponentNode (aNodeID); + + VICnodeDef aNodeDef; + try { + aNodeDef = theirTM->getComponentNode (aNodeID); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::getComponentNode(" << aNodeID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return convertVICnodeDef (env, aNodeDef); } @@ -126,19 +169,25 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_g */ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_getComponentParams(JNIEnv *env, jobject, jint aNodeID) { - vector<OTDBparam> itemList = theirTM->getComponentParams(aNodeID); - vector<OTDBparam>::iterator itemIterator; - - // Construct java Vector jobject itemVector; - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); - itemVector = env->NewObject(class_Vector, mid_Vector_cons); - jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); + try { + vector<OTDBparam> itemList = theirTM->getComponentParams(aNodeID); + vector<OTDBparam>::iterator itemIterator; + + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); + itemVector = env->NewObject(class_Vector, mid_Vector_cons); + jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); + + for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) + env->CallObjectMethod(itemVector, mid_Vector_add, convertOTDBparam(env, *itemIterator)); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::getComponentParams(" << aNodeID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } - for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) - env->CallObjectMethod(itemVector, mid_Vector_add, convertOTDBparam(env, *itemIterator)); - return itemVector; } @@ -149,8 +198,17 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_g */ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_saveComponentNode(JNIEnv *env, jobject, jobject jVICnodeDef) { - VICnodeDef aVICnodeDef = convertjVICnodeDef (env, jVICnodeDef); - jboolean succes = theirTM->saveComponentNode(aVICnodeDef); + jboolean succes; + + try { + VICnodeDef aVICnodeDef = convertjVICnodeDef (env, jVICnodeDef); + succes = theirTM->saveComponentNode(aVICnodeDef); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::saveComponentNode" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return succes; } @@ -159,9 +217,18 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Method: isTopComponent * Signature: (I)Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_isTopComponent(JNIEnv *, jobject, jint aNodeID){ - jboolean success = theirTM->isTopComponent(aNodeID); - return success; +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_isTopComponent(JNIEnv *env, jobject, jint aNodeID){ + + jboolean succes; + try { + succes = theirTM->isTopComponent(aNodeID); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::isTopComponent(" << aNodeID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + + return succes; } @@ -170,8 +237,17 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Method: buildTemplateTree * Signature: (IS)I */ -JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_buildTemplateTree(JNIEnv *, jobject, jint topNodeID, jshort aClassif) { - jint treeID = theirTM->buildTemplateTree (topNodeID, aClassif); +JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_buildTemplateTree(JNIEnv *env, jobject, jint topNodeID, jshort aClassif) { + + jint treeID; + try { + treeID = theirTM->buildTemplateTree (topNodeID, aClassif); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::buildTemplateTree(" << topNodeID << "," << aClassif << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return treeID; } @@ -180,8 +256,17 @@ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_buil * Method: newTemplateTree * Signature: ()I */ -JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_newTemplateTree(JNIEnv *, jobject) { - jint treeID = theirTM->newTemplateTree(); +JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_newTemplateTree(JNIEnv *env, jobject) { + + jint treeID; + try { + treeID = theirTM->newTemplateTree(); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::newTemplateTree" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return treeID; } @@ -191,8 +276,17 @@ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_newT * Method: copyTemplateTree * Signature: (I)I */ -JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_copyTemplateTree(JNIEnv *, jobject, jint aTreeID) { - jint treeID = theirTM->copyTemplateTree (aTreeID); +JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_copyTemplateTree(JNIEnv *env, jobject, jint aTreeID) { + + jint treeID; + try { + treeID = theirTM->copyTemplateTree (aTreeID); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::copyTemplateTree(" << aTreeID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return treeID; } @@ -202,7 +296,16 @@ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_copy * Signature: (II)Lnl/astron/lofar/sas/otb/jotdb2/jOTDBnode; */ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_getNode(JNIEnv *env, jobject, jint aTreeID, jint aNodeID) { - OTDBnode aNode = theirTM->getNode (aTreeID, aNodeID); + + OTDBnode aNode; + try { + aNode = theirTM->getNode (aTreeID, aNodeID); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::getNode(" << aTreeID << "," << aNodeID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return convertOTDBnode (env, aNode); } @@ -212,7 +315,16 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_g * Signature: (II)Lnl/astron/lofar/sas/otb/jotdb2/jOTDBparam; */ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_getParam(JNIEnv *env, jobject, jint treeID, jint paramID ) { - OTDBparam aNode = theirTM->getParam (treeID, paramID); + + OTDBparam aNode; + try { + aNode = theirTM->getParam (treeID, paramID); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::getParam(" << treeID << "," << paramID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return convertOTDBparam (env, aNode); } @@ -222,8 +334,17 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_g * Signature: (Lnl/astron/lofar/sas/otb/jotdb2/jOTDBparam;)Z */ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_saveParam(JNIEnv *env, jobject, jobject jParam) { - OTDBparam aParam = convertjOTDBparam(env,jParam); - jboolean succes = theirTM->saveParam (aParam); + + jboolean succes; + try { + OTDBparam aParam = convertjOTDBparam(env,jParam); + succes = theirTM->saveParam (aParam); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::saveParam " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return succes; } @@ -233,18 +354,26 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Signature: (III)Ljava/util/Vector; */ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_getItemList__III(JNIEnv *env, jobject, jint aTreeID, jint topNode, jint depth) { - vector<OTDBnode> itemList = theirTM->getItemList (aTreeID, topNode, depth); - vector<OTDBnode>::iterator itemIterator; - - // Construct java Vector + jobject itemVector; - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); - itemVector = env->NewObject(class_Vector, mid_Vector_cons); - jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); + try { + vector<OTDBnode> itemList = theirTM->getItemList (aTreeID, topNode, depth); + vector<OTDBnode>::iterator itemIterator; + + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); + itemVector = env->NewObject(class_Vector, mid_Vector_cons); + jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); - for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) - env->CallObjectMethod(itemVector, mid_Vector_add, convertOTDBnode (env, *itemIterator)); + for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) + env->CallObjectMethod(itemVector, mid_Vector_add, convertOTDBnode (env, *itemIterator)); + + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::getItemList(" << aTreeID << "," << topNode << "," << depth << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return itemVector; } @@ -255,24 +384,34 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_g * Signature: (ILjava/lang/String;)Ljava/util/Vector; */ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_getItemList__ILjava_lang_String_2(JNIEnv *env, jobject, jint aTreeID, jstring aNameFragment) { + + jobject itemVector; + const char* nf = env->GetStringUTFChars (aNameFragment, 0); const string nameFragment (nf); - vector<OTDBnode> itemList = theirTM->getItemList (aTreeID, nameFragment); - vector<OTDBnode>::iterator itemIterator; + try { + vector<OTDBnode> itemList = theirTM->getItemList (aTreeID, nameFragment); + vector<OTDBnode>::iterator itemIterator; - // Construct java Vector - jobject itemVector; - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); - itemVector = env->NewObject(class_Vector, mid_Vector_cons); - jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); + itemVector = env->NewObject(class_Vector, mid_Vector_cons); + jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); - for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) - env->CallObjectMethod(itemVector, mid_Vector_add, convertOTDBnode (env, *itemIterator)); + for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) + env->CallObjectMethod(itemVector, mid_Vector_add, convertOTDBnode (env, *itemIterator)); - env->ReleaseStringUTFChars (aNameFragment, nf); + env->ReleaseStringUTFChars (aNameFragment, nf); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::getItemList(" << aTreeID << "," << nameFragment << ") " << ex.what() << endl; + + env->ReleaseStringUTFChars (aNameFragment, nf); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return itemVector; } @@ -281,8 +420,18 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_g * Method: dupNode * Signature: (IIS)I */ -JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_dupNode(JNIEnv *, jobject, jint aTreeID, jint orgNodeID, jshort newIndex) { - return theirTM->dupNode (aTreeID, orgNodeID, newIndex); +JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_dupNode(JNIEnv *env, jobject, jint aTreeID, jint orgNodeID, jshort newIndex) { + + jint anID; + try { + anID = theirTM->dupNode (aTreeID, orgNodeID, newIndex); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::dupNode(" << aTreeID << "," << orgNodeID << "," << newIndex << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + + return anID; } /* @@ -290,8 +439,18 @@ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_dupN * Method: addComponent * Signature: (III)I */ -JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_addComponent(JNIEnv *, jobject, jint compID, jint treeID, jint nodeID) { - return theirTM->addComponent(compID,treeID,nodeID); +JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_addComponent(JNIEnv *env, jobject, jint compID, jint treeID, jint nodeID) { + + jint anID; + try { + anID=theirTM->addComponent(compID,treeID,nodeID); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::addComponent(" << compID << "," << treeID << "," << nodeID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + + return anID; } /* @@ -300,8 +459,17 @@ JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_addC * Signature: (Lnl/astron/lofar/sas/otb/jotdb2/jOTDBnode;)Z */ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_saveNode(JNIEnv *env, jobject, jobject jNode) { - OTDBnode aNode = convertjOTDBnode (env, jNode); - return theirTM->saveNode (aNode); + + jboolean aB; + try { + OTDBnode aNode = convertjOTDBnode (env, jNode); + aB=theirTM->saveNode (aNode); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::saveNode" << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + + return aB; } /* @@ -310,21 +478,26 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Signature: (Ljava/util/Vector;)Z */ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_saveNodeList(JNIEnv *env, jobject, jobject aNodeList) { + jboolean succes; - OTDBnode aNode; - // Construct java Vector - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_elementAt = env->GetMethodID(class_Vector, "elementAt", "(I)Ljava/lang/Object;"); - jmethodID mid_Vector_size = env->GetMethodID(class_Vector, "size", "()I"); + + try { + OTDBnode aNode; + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_elementAt = env->GetMethodID(class_Vector, "elementAt", "(I)Ljava/lang/Object;"); + jmethodID mid_Vector_size = env->GetMethodID(class_Vector, "size", "()I"); - for (int i = 0; i < env->CallIntMethod (aNodeList, mid_Vector_size); i++) - { + for (int i = 0; i < env->CallIntMethod (aNodeList, mid_Vector_size); i++) { aNode = convertjOTDBnode (env, env->CallObjectMethod (aNodeList, mid_Vector_elementAt, i)); succes = theirTM->saveNode (aNode); if (!succes) return succes; } - + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::saveNodeList" << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return succes; } @@ -334,14 +507,23 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Signature: (Lnl/astron/lofar/sas/otb/jotdb2/jOTDBnode;)Z */ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_deleteNode(JNIEnv *env, jobject, jobject jNode) { - jclass class_jOTDBnode = env->FindClass ("nl/astron/lofar/sas/otb/jotdb2/jOTDBnode"); - jfieldID fid_jOTDBnode_itsTreeID = env->GetFieldID (class_jOTDBnode, "itsTreeID", "I"); - jfieldID fid_jOTDBnode_itsNodeID = env->GetFieldID (class_jOTDBnode, "itsNodeID", "I"); + + jboolean aB ; + try { + jclass class_jOTDBnode = env->FindClass ("nl/astron/lofar/sas/otb/jotdb2/jOTDBnode"); + jfieldID fid_jOTDBnode_itsTreeID = env->GetFieldID (class_jOTDBnode, "itsTreeID", "I"); + jfieldID fid_jOTDBnode_itsNodeID = env->GetFieldID (class_jOTDBnode, "itsNodeID", "I"); - // Get original OTDB node - OTDBnode aNode = theirTM->getNode (env->GetIntField (jNode, fid_jOTDBnode_itsTreeID), env->GetIntField (jNode, fid_jOTDBnode_itsNodeID)); + // Get original OTDB node + OTDBnode aNode = theirTM->getNode (env->GetIntField (jNode, fid_jOTDBnode_itsTreeID), env->GetIntField (jNode, fid_jOTDBnode_itsNodeID)); + aB=theirTM->deleteNode(aNode); - return theirTM->deleteNode (aNode); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::deleteNode" << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + + return aB; } /* @@ -351,26 +533,31 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ */ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_deleteNodeList(JNIEnv *env, jobject, jobject jNodeList) { jboolean succes; - OTDBnode aNode; - // Construct java Vector - jobject jNode; - jclass class_Vector = env->FindClass ("java/util/Vector"); - jmethodID mid_Vector_elementAt = env->GetMethodID (class_Vector, "elementAt", "(I)Ljava/lang/Object;"); - jmethodID mid_Vector_size = env->GetMethodID (class_Vector, "size", "()I"); + try { + OTDBnode aNode; + // Construct java Vector + jobject jNode; + jclass class_Vector = env->FindClass ("java/util/Vector"); + jmethodID mid_Vector_elementAt = env->GetMethodID (class_Vector, "elementAt", "(I)Ljava/lang/Object;"); + jmethodID mid_Vector_size = env->GetMethodID (class_Vector, "size", "()I"); - jclass class_jOTDBnode = env->FindClass ("nl/astron/lofar/sas/otb/jotdb2/jOTDBnode"); - jfieldID fid_jOTDBnode_itsTreeID = env->GetFieldID (class_jOTDBnode, "itsTreeID", "I"); - jfieldID fid_jOTDBnode_itsNodeID = env->GetFieldID (class_jOTDBnode, "itsNodeID", "I"); + jclass class_jOTDBnode = env->FindClass ("nl/astron/lofar/sas/otb/jotdb2/jOTDBnode"); + jfieldID fid_jOTDBnode_itsTreeID = env->GetFieldID (class_jOTDBnode, "itsTreeID", "I"); + jfieldID fid_jOTDBnode_itsNodeID = env->GetFieldID (class_jOTDBnode, "itsNodeID", "I"); - for (int i = 0; i < env->CallIntMethod (jNodeList, mid_Vector_size); i++) - { + for (int i = 0; i < env->CallIntMethod (jNodeList, mid_Vector_size); i++) { jNode = env->CallObjectMethod (jNodeList, mid_Vector_elementAt, i); // Get original OTDB node aNode = theirTM->getNode (env->GetIntField (jNode, fid_jOTDBnode_itsTreeID), env->GetIntField (jNode, fid_jOTDBnode_itsNodeID)); succes = theirTM->deleteNode (aNode); if (!succes) return succes; - } + } + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::deleteNodeList" << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return succes; } @@ -379,8 +566,16 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Method: checkTreeConstraints * Signature: (II)Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeaintenance_checkTreeConstraints(JNIEnv *, jobject, jint aTreeID, jint topNode) { - // return theirTM->checkTreeConstraints (aTreeID, topNode); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeaintenance_checkTreeConstraints(JNIEnv *env, jobject, jint aTreeID, jint topNode) { + jboolean aB; + try { + // aB=theirTM->checkTreeConstraints (aTreeID, topNode); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::checkTreeConstraints(" << aTreeID << "," << topNode << ") "<< ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + + return aB; } /* @@ -388,17 +583,33 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeaintenance_c * Method: instanciateTree * Signature: (I)I */ -JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_instanciateTree(JNIEnv *, jobject, jint baseTree) { - return theirTM->instanciateTree (baseTree); +JNIEXPORT jint JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_instanciateTree(JNIEnv *env, jobject, jint baseTree) { + jint anID; + try { + anID= theirTM->instanciateTree (baseTree); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::instantiateTree(" << baseTree << ") " << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return anID; } /* - * Class: nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance + * Class: nl_astron_lofar_sas_otb_jotdb2_jTreeMantenance * Method: pruneTree * Signature: (IS)Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_pruneTree(JNIEnv *, jobject, jint aTreeID, jshort pruningLevel) { - return theirTM->pruneTree (aTreeID, pruningLevel); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_pruneTree(JNIEnv *env, jobject, jint aTreeID, jshort pruningLevel) { + + jboolean aB; + try { + aB= theirTM->pruneTree (aTreeID, pruningLevel); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::pruneTree(" << aTreeID << "," << pruningLevel << ") " << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + + return aB; } /* @@ -409,9 +620,16 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_exportTree(JNIEnv *env, jobject, jint treeID, jint topItem, jstring aName, jint outputFormat, jboolean folded) { jboolean isCopy; + jboolean succes; const char* name = env->GetStringUTFChars (aName, &isCopy); - jboolean succes = theirTM->exportTree (treeID, topItem, name, (TreeMaintenance::formatType)outputFormat , folded); - env->ReleaseStringUTFChars (aName, name); + try { + succes = theirTM->exportTree (treeID, topItem, name, (TreeMaintenance::formatType)outputFormat , folded); + env->ReleaseStringUTFChars (aName, name); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::exportTree(" << treeID << "," << topItem << "," << name << "," << (TreeMaintenance::formatType)outputFormat << "," << folded << ") "<< ex.what() << endl; + env->ReleaseStringUTFChars (aName, name); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return succes; } @@ -425,11 +643,11 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ jboolean succes; try { succes=theirTM->deleteTree (aTreeID); - } catch (exception ex) { - cout << "Exception found: "<< ex.what() << endl; + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::deleteTree(" << aTreeID << ") " << ex.what() << endl; env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); - // env->ExceptionClear(); } + return succes; } @@ -439,7 +657,15 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Signature: (I)Lnl/astron/lofar/sas/otb/jotdb2/jOTDBnode; */ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_getTopNode(JNIEnv *env, jobject, jint aTreeID) { - OTDBnode aNode = theirTM->getTopNode (aTreeID); + + OTDBnode aNode; + try { + aNode = theirTM->getTopNode (aTreeID); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::getTopNode(" << aTreeID << ") " << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return convertOTDBnode (env, aNode); } @@ -450,10 +676,16 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_g */ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_setMomInfo(JNIEnv *env, jobject, jint aTreeID, jint aMomID, jstring aCampaign) { jboolean isCopy; + jboolean succes; const char* name = env->GetStringUTFChars (aCampaign, &isCopy); - jboolean succes = theirTM->setMomInfo (aTreeID, aMomID, name); - env->ReleaseStringUTFChars (aCampaign, name); - + try { + succes = theirTM->setMomInfo (aTreeID, aMomID, name); + env->ReleaseStringUTFChars (aCampaign, name); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::setMomInfo(" << aTreeID << "," << aMomID << "," << name << ") " << ex.what() << endl; + env->ReleaseStringUTFChars (aCampaign, name); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return succes; } @@ -462,8 +694,15 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Method: setClassification * Signature: (IS)Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_setClassification(JNIEnv *, jobject, jint aTreeID, jshort aClassification) { - return theirTM->setClassification (aTreeID, aClassification); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_setClassification(JNIEnv *env, jobject, jint aTreeID, jshort aClassification) { + jboolean succes; + try { + succes=theirTM->setClassification (aTreeID, aClassification); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::setClassification(" << aTreeID << "," << aClassification << ") " << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return succes; } /* @@ -471,8 +710,15 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Method: setTreeState * Signature: (IS)Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_setTreeState(JNIEnv *, jobject, jint aTreeID, jshort aState) { - return theirTM->setTreeState (aTreeID, aState); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_setTreeState(JNIEnv *env, jobject, jint aTreeID, jshort aState) { + jboolean aB; + try { + theirTM->setTreeState (aTreeID, aState); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::setTreeState(" << aTreeID << "," << aState << ") " << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return aB; } /* @@ -482,9 +728,17 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ */ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_setDescription(JNIEnv *env, jobject, jint aTreeID, jstring aDesc) { jboolean isCopy; + jboolean succes; const char* desc = env->GetStringUTFChars (aDesc, &isCopy); - jboolean succes = theirTM->setDescription (aTreeID, desc); - env->ReleaseStringUTFChars (aDesc, desc); + try { + succes = theirTM->setDescription (aTreeID, desc); + env->ReleaseStringUTFChars (aDesc, desc); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::setDescription(" << aTreeID << "," << desc << ") " << ex.what() << endl; + env->ReleaseStringUTFChars (aDesc, desc); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return succes; } @@ -500,7 +754,18 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ const string endTime (ed); const ptime ts (time_from_string (startTime)); const ptime te (time_from_string (endTime)); - return theirTM->setSchedule(treeID,ts,te); + jboolean aB; + try { + aB= theirTM->setSchedule(treeID,ts,te); + env->ReleaseStringUTFChars (aStartTime, bd); + env->ReleaseStringUTFChars (anEndTime, ed); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::setSchedule(" << treeID << "," << ts << "," << te << ") " << ex.what() << endl; + env->ReleaseStringUTFChars (aStartTime, bd); + env->ReleaseStringUTFChars (anEndTime, ed); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return aB; } @@ -510,7 +775,15 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_ * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeMaintenance_errorMsg(JNIEnv *env, jobject) { - return env->NewStringUTF(theirConn->errorMsg().c_str()); + jstring aS; + try { + aS = env->NewStringUTF(theirConn->errorMsg().c_str()); + } catch (exception &ex) { + cout << "Exception during TreeMaintenance::errorMsg" << ex.what() << endl; + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return aS; + } diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv.cc index 6ffc3fcf50959bf751e6d35bade2042d0d79381b..63311fa14a4c3f97d29ed127b8aae3c0b1997551 100644 --- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv.cc +++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv.cc @@ -44,9 +44,16 @@ extern OTDBconnection* theirConn; * Method: initTreeStateConv * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_initTreeStateConv(JNIEnv *, jobject) { +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_initTreeStateConv(JNIEnv *env, jobject) { - treeStateConv = new TreeStateConv(theirConn); + try { + treeStateConv = new TreeStateConv(theirConn); + } catch (exception &ex) { + cout << "Exception during new TreeStateConv "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + } /* @@ -59,9 +66,17 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_get_ const char* chars = env->GetStringUTFChars (aConv, 0); const string str (chars); - short ret = treeStateConv->get (str); + short ret; + try { + ret= treeStateConv->get (str); - env->ReleaseStringUTFChars (aConv, chars); + env->ReleaseStringUTFChars (aConv, chars); + } catch (exception &ex) { + cout << "Exception during TreeStateConv::get(" << str << ") " << ex.what() << endl; + + env->ReleaseStringUTFChars (aConv, chars); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return ret; } @@ -72,7 +87,15 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_get_ * Signature: (S)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_get__S(JNIEnv *env, jobject, jshort aConv) { - jstring jstr = env->NewStringUTF (treeStateConv->get(aConv).c_str()); + jstring jstr; + try { + jstr= env->NewStringUTF (treeStateConv->get(aConv).c_str()); + } catch (exception &ex) { + cout << "Exception during TreeStateConv::get(" << aConv << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return jstr; } @@ -97,30 +120,35 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_get shortInit = env->GetMethodID(shortClass, "<init>", "(S)V"); - - if ( env->ExceptionOccurred() ) - return 0; + try { + if ( env->ExceptionOccurred() ) + return 0; - put= env->GetMethodID(mapClass, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); - - if ( env->ExceptionOccurred() ) - return 0; + put= env->GetMethodID(mapClass, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); + + if ( env->ExceptionOccurred() ) + return 0; - treeStateConv->top(); - do { - treeState key; - string value; - - if (treeStateConv->get(key, value)) { - env->CallObjectMethod(result, put, env->NewObject(shortClass, - shortInit, - (jshort)key), - env->NewStringUTF(value.c_str())); - - if ( env->ExceptionOccurred() ) - return 0; - } - } while (treeStateConv->next()); + treeStateConv->top(); + do { + treeState key; + string value; + + if (treeStateConv->get(key, value)) { + env->CallObjectMethod(result, put, env->NewObject(shortClass, + shortInit, + (jshort)key), + env->NewStringUTF(value.c_str())); + + if ( env->ExceptionOccurred() ) + return 0; + } + } while (treeStateConv->next()); + } catch (exception &ex) { + cout << "Exception during TreeStateConv::getTypes" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return result; @@ -131,8 +159,15 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_get * Method: top * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_top(JNIEnv *, jobject) { - treeStateConv->top(); +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_top(JNIEnv *env, jobject) { + try { + treeStateConv->top(); + } catch (exception &ex) { + cout << "Exception during TreeStateConv::top" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + } @@ -141,7 +176,15 @@ JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_top(JN * Method: next * Signature: ()Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_next(JNIEnv *, jobject) { - jboolean aBool=treeStateConv->next(); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeStateConv_next(JNIEnv *env, jobject) { + jboolean aBool; + try { + aBool=treeStateConv->next(); + } catch (exception &ex) { + cout << "Exception during TreeStateConv::next" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return aBool; } diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv.cc index eac6e2a0bcbc8da795fd12668d05e0875bf650df..788cbe99897da6018f2695eb3aafca78c74a0d8c 100644 --- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv.cc +++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv.cc @@ -44,9 +44,15 @@ extern OTDBconnection* theirConn; * Method: initTreeTypeConv * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_initTreeTypeConv(JNIEnv *, jobject) { - - treeTypeConv = new TreeTypeConv(theirConn); +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_initTreeTypeConv(JNIEnv *env, jobject) { + try { + treeTypeConv = new TreeTypeConv(theirConn); + } catch (exception &ex) { + cout << "Exception during new TreeTypeConv::top" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + } /* @@ -59,9 +65,18 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_get__ const char* chars = env->GetStringUTFChars (aConv, 0); const string str (chars); - short ret = treeTypeConv->get (str); + short ret; + try { + ret= treeTypeConv->get (str); - env->ReleaseStringUTFChars (aConv, chars); + env->ReleaseStringUTFChars (aConv, chars); + } catch (exception &ex) { + cout << "Exception during TreeTypeConv::get(" << str << ") " << ex.what() << endl; + + env->ReleaseStringUTFChars (aConv, chars); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return ret; } @@ -72,7 +87,15 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_get__ * Signature: (S)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_get__S(JNIEnv *env, jobject, jshort aConv) { - jstring jstr = env->NewStringUTF (treeTypeConv->get(aConv).c_str()); + jstring jstr; + try { + jstr= env->NewStringUTF (treeTypeConv->get(aConv).c_str()); + } catch (exception &ex) { + cout << "Exception during TreeTypeConv::get(" << aConv << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return jstr; } @@ -97,7 +120,6 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_getT shortInit = env->GetMethodID(shortClass, "<init>", "(S)V"); - if ( env->ExceptionOccurred() ) return 0; @@ -106,21 +128,28 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_getT if ( env->ExceptionOccurred() ) return 0; - treeTypeConv->top(); - do { - treeType key; - string value; - - if (treeTypeConv->get(key, value)) { - env->CallObjectMethod(result, put, env->NewObject(shortClass, - shortInit, - (jshort)key), - env->NewStringUTF(value.c_str())); - - if ( env->ExceptionOccurred() ) - return 0; - } - } while (treeTypeConv->next()); + try { + + treeTypeConv->top(); + do { + treeType key; + string value; + + if (treeTypeConv->get(key, value)) { + env->CallObjectMethod(result, put, env->NewObject(shortClass, + shortInit, + (jshort)key), + env->NewStringUTF(value.c_str())); + + if ( env->ExceptionOccurred() ) + return 0; + } + } while (treeTypeConv->next()); + } catch (exception &ex) { + cout << "Exception during TreeTypeConv::getTypes(" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return result; @@ -131,8 +160,15 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_getT * Method: top * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_top(JNIEnv *, jobject) { - treeTypeConv->top(); +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_top(JNIEnv *env, jobject) { + try { + treeTypeConv->top(); + } catch (exception &ex) { + cout << "Exception during TreeTypeConv::top(" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + } @@ -141,7 +177,15 @@ JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_top(JNI * Method: next * Signature: ()Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_next(JNIEnv *, jobject) { - jboolean aBool=treeTypeConv->next(); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeTypeConv_next(JNIEnv *env, jobject) { + jboolean aBool; + try { + aBool=treeTypeConv->next(); + } catch (exception &ex) { + cout << "Exception during TreeTypeConv::next(" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return aBool; } diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeValue.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeValue.cc index 4945425a47e845a6c205399cedeff6130e1af221..b4efcf479e5346f6982e4845ebcfd80f9a80d2b8 100644 --- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeValue.cc +++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jTreeValue.cc @@ -25,21 +25,18 @@ //# Includes #include <Common/LofarLogger.h> #include <jni.h> +#include <jOTDB2/nl_astron_lofar_sas_otb_jotdb2_jCommon.h> #include <jOTDB2/nl_astron_lofar_sas_otb_jotdb2_jOTDBconnection.h> -#include <OTDB/TreeValue.h> -#include <OTDB/OTDBvalue.h> +#include <jOTDB2/nl_astron_lofar_sas_otb_jotdb2_jTreeValue.h> #include <boost/date_time/posix_time/ptime.hpp> #include <boost/date_time/posix_time/time_formatters.hpp> #include <boost/date_time/posix_time/time_parsers.hpp> #include <string> #include <iostream> -#include <jOTDB2/nl_astron_lofar_sas_otb_jotdb2_jCommon.h> -#include <jOTDB2/nl_astron_lofar_sas_otb_jotdb2_jTreeValue.h> using namespace boost::posix_time; using namespace LOFAR::OTDB; -using std::string; -using std::vector; +using namespace std; TreeValue* treeval; extern OTDBconnection* theirConn; @@ -65,13 +62,23 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeValue_addKVT const ptime aTime (time_from_string (aT)); - jboolean succes=treeval->addKVT(aKey,aValue,aTime); - - env->ReleaseStringUTFChars (key ,ak); - env->ReleaseStringUTFChars (val ,av); - env->ReleaseStringUTFChars (time ,at); + jboolean succes; + try { + succes=treeval->addKVT(aKey,aValue,aTime); + + env->ReleaseStringUTFChars (key ,ak); + env->ReleaseStringUTFChars (val ,av); + env->ReleaseStringUTFChars (time ,at); + setErrorMsg(env,obj); + } catch (exception &ex) { + cout << "Exception during treeValue::addKVT(" << aKey << "," << aValue << "," << aTime << ") " << ex.what() << endl; + + env->ReleaseStringUTFChars (key ,ak); + env->ReleaseStringUTFChars (val ,av); + env->ReleaseStringUTFChars (time ,at); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } - setErrorMsg(env,obj); return succes; } @@ -86,9 +93,16 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeValue_addKVT setTreeValConnection(env,obj); OTDBvalue anOTDBvalue = convertjOTDBvalue (env, jOTDBval); - jboolean succes = treeval->addKVT(anOTDBvalue); + jboolean succes; + try { + succes = treeval->addKVT(anOTDBvalue); + setErrorMsg(env,obj); + } catch (exception &ex) { + cout << "Exception during treeValue::addKVT" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } - setErrorMsg(env,obj); return succes; } @@ -122,8 +136,16 @@ JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeValue_addKVT } setErrorMsg(env,obj); - - return treeval->addKVTlist(aCValList); + + jboolean succes; + try { + succes=treeval->addKVTlist(aCValList); + } catch (exception &ex) { + cout << "Exception during treeValue::addKVTlist" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return succes; } /* @@ -147,26 +169,33 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeValue_searchI const ptime ts (time_from_string (beginTime)); const ptime te (time_from_string (endTime)); + jobject valueVector; - vector<OTDBvalue> valueList = treeval->searchInPeriod (topNode, depth, ts, te, mostRecentOnly); - vector<OTDBvalue>::iterator valueIterator; + try { + vector<OTDBvalue> valueList = treeval->searchInPeriod (topNode, depth, ts, te, mostRecentOnly); + vector<OTDBvalue>::iterator valueIterator; - // Construct java Vector - jobject valueVector; - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); - valueVector = env->NewObject(class_Vector, mid_Vector_cons); - jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); - - for (valueIterator = valueList.begin(); valueIterator != valueList.end(); valueIterator++) - env->CallObjectMethod(valueVector, mid_Vector_add, convertOTDBvalue (env, *valueIterator)); + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); + valueVector = env->NewObject(class_Vector, mid_Vector_cons); + jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); - env->ReleaseStringUTFChars (beginDate, bd); - env->ReleaseStringUTFChars (endDate, ed); + for (valueIterator = valueList.begin(); valueIterator != valueList.end(); valueIterator++) + env->CallObjectMethod(valueVector, mid_Vector_add, convertOTDBvalue (env, *valueIterator)); + + env->ReleaseStringUTFChars (beginDate, bd); + env->ReleaseStringUTFChars (endDate, ed); + + setErrorMsg(env,obj); + } catch (exception &ex) { + cout << "Exception during treeValue::searchInPeriod(" << topNode << "," + << depth << "," << ts << "," << mostRecentOnly << ") "<< ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); - setErrorMsg(env,obj); - + } return valueVector; } @@ -179,23 +208,29 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jTreeValue_getSche // create the connection with the c++ TreeVal setTreeValConnection(env,obj); + jobject itemVector; - vector<OTDBvalue> itemList = treeval->getSchedulableItems(aNodeID); - vector<OTDBvalue>::iterator itemIterator; + try { + vector<OTDBvalue> itemList = treeval->getSchedulableItems(aNodeID); + vector<OTDBvalue>::iterator itemIterator; - // Construct java Vector - jobject itemVector; - jclass class_Vector = env->FindClass("java/util/Vector"); - jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); - itemVector = env->NewObject(class_Vector, mid_Vector_cons); - jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); + // Construct java Vector + jclass class_Vector = env->FindClass("java/util/Vector"); + jmethodID mid_Vector_cons = env->GetMethodID(class_Vector, "<init>", "()V"); + itemVector = env->NewObject(class_Vector, mid_Vector_cons); + jmethodID mid_Vector_add = env->GetMethodID(class_Vector, "add", "(Ljava/lang/Object;)Z"); - for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) - env->CallObjectMethod(itemVector, - mid_Vector_add, - convertOTDBvalue (env, *itemIterator)); + for (itemIterator = itemList.begin(); itemIterator != itemList.end(); itemIterator++) + env->CallObjectMethod(itemVector, + mid_Vector_add, + convertOTDBvalue (env, *itemIterator)); - setErrorMsg(env,obj); + setErrorMsg(env,obj); + } catch (exception &ex) { + cout << "Exception during treeValue::getSchedulableItems(" << aNodeID << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return itemVector; } @@ -213,7 +248,13 @@ void setTreeValConnection(JNIEnv *env, jobject callerObject) { jint aTreeID = env->GetIntField(callerObject,id_treeID); // create the connection with the c++ TreeVal - treeval = new TreeValue(theirConn,aTreeID); + try { + treeval = new TreeValue(theirConn,aTreeID); + } catch (exception &ex) { + cout << "Exception during new treeValue" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } } void setErrorMsg(JNIEnv *env, jobject callerObject) { @@ -224,7 +265,14 @@ void setErrorMsg(JNIEnv *env, jobject callerObject) { jfieldID id_errorMsg = env->GetFieldID (jTreeValue, "itsErrorMsg","Ljava/lang/String;"); // get the ErrorMsg - jstring errorMsg=env->NewStringUTF(theirConn->errorMsg().c_str()); + jstring errorMsg; + try { + errorMsg=env->NewStringUTF(theirConn->errorMsg().c_str()); + } catch (exception &ex) { + cout << "Exception during errorMsg" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } // set the ErrorMsg in the jTreeValue env->SetObjectField(callerObject,id_errorMsg,errorMsg); diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jUnitConv.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jUnitConv.cc index 5aa077f65a0cab1db0732d6589878afb18cafa0a..e55600e3e8c6b915a05525b6ddae4ad9b8f08e3d 100644 --- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jUnitConv.cc +++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jUnitConv.cc @@ -44,9 +44,16 @@ extern OTDBconnection* theirConn; * Method: initUnitConv * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_initUnitConv(JNIEnv *, jobject) { +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_initUnitConv(JNIEnv *env, jobject) { - unitConv = new UnitConv(theirConn); + try { + unitConv = new UnitConv(theirConn); + } catch (exception &ex) { + cout << "Exception during new UnitConv" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + } /* @@ -59,9 +66,17 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_get__Ljav const char* chars = env->GetStringUTFChars (aConv, 0); const string str (chars); - short ret = unitConv->get (str); + short ret; + try { + ret = unitConv->get (str); - env->ReleaseStringUTFChars (aConv, chars); + env->ReleaseStringUTFChars (aConv, chars); + } catch (exception &ex) { + cout << "Exception during UnitConv::get(" << str << ") " << ex.what() << endl; + + env->ReleaseStringUTFChars (aConv, chars); + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } return ret; } @@ -72,7 +87,15 @@ JNIEXPORT jshort JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_get__Ljav * Signature: (S)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_get__S(JNIEnv *env, jobject, jshort aConv) { - jstring jstr = env->NewStringUTF (unitConv->get(aConv).c_str()); + jstring jstr; + try { + jstr= env->NewStringUTF (unitConv->get(aConv).c_str()); + } catch (exception &ex) { + cout << "Exception during UnitConv::get(" << aConv << ") " << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return jstr; } @@ -97,7 +120,6 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_getTypes shortInit = env->GetMethodID(shortClass, "<init>", "(S)V"); - if ( env->ExceptionOccurred() ) return 0; @@ -106,21 +128,28 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_getTypes if ( env->ExceptionOccurred() ) return 0; - unitConv->top(); - do { - unitType key; - string value; - - if (unitConv->get(key, value)) { - env->CallObjectMethod(result, put, env->NewObject(shortClass, - shortInit, - (jshort)key), - env->NewStringUTF(value.c_str())); - - if ( env->ExceptionOccurred() ) - return 0; - } - } while (unitConv->next()); + try { + unitConv->top(); + do { + unitType key; + string value; + + if (unitConv->get(key, value)) { + env->CallObjectMethod(result, put, env->NewObject(shortClass, + shortInit, + (jshort)key), + env->NewStringUTF(value.c_str())); + + if ( env->ExceptionOccurred() ) + return 0; + } + } while (unitConv->next()); + } catch (exception &ex) { + cout << "Exception during UnitConv::getTypes" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return result; @@ -131,8 +160,15 @@ JNIEXPORT jobject JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_getTypes * Method: top * Signature: ()V */ -JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_top(JNIEnv *, jobject) { - unitConv->top(); +JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_top(JNIEnv *env, jobject) { + + try { + unitConv->top(); + } catch (exception &ex) { + cout << "Exception during UnitConv::top" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } } @@ -141,7 +177,15 @@ JNIEXPORT void JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_top(JNIEnv * Method: next * Signature: ()Z */ -JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_next(JNIEnv *, jobject) { - jboolean aBool=unitConv->next(); +JNIEXPORT jboolean JNICALL Java_nl_astron_lofar_sas_otb_jotdb2_jUnitConv_next(JNIEnv *env, jobject) { + jboolean aBool; + try { + aBool=unitConv->next(); + } catch (exception &ex) { + cout << "Exception during UnitConv::next" << ex.what() << endl; + + env->ThrowNew(env->FindClass("java/lang/Exception"),ex.what()); + } + return aBool; }