summaryrefslogtreecommitdiff
path: root/connectivity
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-10-25 15:22:39 +0100
committerCaolán McNamara <caolanm@redhat.com>2014-10-25 16:56:16 +0100
commit7c896697f29730476ea0fc4517d94c2c8e8b2074 (patch)
tree842a02b54ee22e45d4fc41b5b8081ba0dd0137cc /connectivity
parentd6ce524de5b05b69fedf8ec43e8bd3fdd01a2cc4 (diff)
coverity#706317 Uncaught exception
Change-Id: I8b39addd8d4b9f7d68d0f7a317d1dff7388aba93
Diffstat (limited to 'connectivity')
-rw-r--r--connectivity/source/drivers/jdbc/Array.cxx8
-rw-r--r--connectivity/source/drivers/jdbc/Blob.cxx6
-rw-r--r--connectivity/source/drivers/jdbc/CallableStatement.cxx4
-rw-r--r--connectivity/source/drivers/jdbc/Clob.cxx6
-rw-r--r--connectivity/source/drivers/jdbc/DatabaseMetaData.cxx16
-rw-r--r--connectivity/source/drivers/jdbc/InputStream.cxx2
-rw-r--r--connectivity/source/drivers/jdbc/JBigDecimal.cxx4
-rw-r--r--connectivity/source/drivers/jdbc/JConnection.cxx2
-rw-r--r--connectivity/source/drivers/jdbc/JStatement.cxx4
-rw-r--r--connectivity/source/drivers/jdbc/Object.cxx46
-rw-r--r--connectivity/source/drivers/jdbc/PreparedStatement.cxx10
-rw-r--r--connectivity/source/drivers/jdbc/Reader.cxx4
-rw-r--r--connectivity/source/drivers/jdbc/ResultSet.cxx12
-rw-r--r--connectivity/source/drivers/jdbc/tools.cxx4
-rw-r--r--connectivity/source/inc/java/lang/Object.hxx7
15 files changed, 74 insertions, 61 deletions
diff --git a/connectivity/source/drivers/jdbc/Array.cxx b/connectivity/source/drivers/jdbc/Array.cxx
index d3ff1baa6455..a1b3c3b7e83a 100644
--- a/connectivity/source/drivers/jdbc/Array.cxx
+++ b/connectivity/source/drivers/jdbc/Array.cxx
@@ -60,7 +60,7 @@ sal_Int32 SAL_CALL java_sql_Array::getBaseType( ) throw(::com::sun::star::sdbc:
static const char * cSignature = "(Ljava/util/Map;)[Ljava/lang/Object;";
static const char * cMethodName = "getArray";
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
// submit Java-Call
t.pEnv->CallObjectMethod( object, mID, obj);
ThrowSQLException(t.pEnv,*this);
@@ -79,7 +79,7 @@ sal_Int32 SAL_CALL java_sql_Array::getBaseType( ) throw(::com::sun::star::sdbc:
static const char * cMethodName = "getArray";
// submit Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
t.pEnv->CallObjectMethod( object, mID, index,count,obj);
ThrowSQLException(t.pEnv,*this);
// and clean up
@@ -99,7 +99,7 @@ sal_Int32 SAL_CALL java_sql_Array::getBaseType( ) throw(::com::sun::star::sdbc:
static const char * cMethodName = "getResultSet";
// submit Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
t.pEnv->CallObjectMethod( object, mID, obj);
ThrowSQLException(t.pEnv,*this);
// and cleanup
@@ -119,7 +119,7 @@ sal_Int32 SAL_CALL java_sql_Array::getBaseType( ) throw(::com::sun::star::sdbc:
static const char * cMethodName = "getResultSetAtIndex";
// submit Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
t.pEnv->CallObjectMethod( object, mID, index,count,obj);
ThrowSQLException(t.pEnv,*this);
// and cleanup
diff --git a/connectivity/source/drivers/jdbc/Blob.cxx b/connectivity/source/drivers/jdbc/Blob.cxx
index 50eaf103fbff..c6a29bad8c80 100644
--- a/connectivity/source/drivers/jdbc/Blob.cxx
+++ b/connectivity/source/drivers/jdbc/Blob.cxx
@@ -59,7 +59,7 @@ sal_Int64 SAL_CALL java_sql_Blob::length( ) throw(::com::sun::star::sdbc::SQLEx
static const char * cMethodName = "length";
// submit Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
out = t.pEnv->CallLongMethod( object, mID );
ThrowSQLException(t.pEnv,*this);
} //t.pEnv
@@ -76,7 +76,7 @@ sal_Int64 SAL_CALL java_sql_Blob::length( ) throw(::com::sun::star::sdbc::SQLEx
static const char * cMethodName = "getBytes";
// submit Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
jbyteArray out = static_cast<jbyteArray>(t.pEnv->CallObjectMethod( object, mID,pos,count));
ThrowSQLException(t.pEnv,*this);
if(out)
@@ -111,7 +111,7 @@ sal_Int64 SAL_CALL java_sql_Blob::position( const ::com::sun::star::uno::Sequenc
static const char * cMethodName = "position";
// submit Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
// convert Parameter
jbyteArray pByteArray = t.pEnv->NewByteArray(pattern.getLength());
t.pEnv->SetByteArrayRegion(pByteArray,0,pattern.getLength(),(jbyte*)pattern.getConstArray());
diff --git a/connectivity/source/drivers/jdbc/CallableStatement.cxx b/connectivity/source/drivers/jdbc/CallableStatement.cxx
index a915b8c95cf4..6debd575cab2 100644
--- a/connectivity/source/drivers/jdbc/CallableStatement.cxx
+++ b/connectivity/source/drivers/jdbc/CallableStatement.cxx
@@ -215,7 +215,7 @@ void SAL_CALL java_sql_CallableStatement::registerOutParameter( sal_Int32 parame
static const char * cMethodName = "registerOutParameter";
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
// Convert Parameter
jdbc::LocalRef< jstring > str( t.env(),convertwchar_tToJavaString(t.pEnv,typeName));
t.pEnv->CallVoidMethod( object, mID, parameterIndex,sqlType,str.get());
@@ -235,7 +235,7 @@ void SAL_CALL java_sql_CallableStatement::registerNumericOutParameter( sal_Int32
static const char * cMethodName = "registerOutParameter";
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
t.pEnv->CallVoidMethod( object, mID, parameterIndex,sqlType,scale);
ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
}
diff --git a/connectivity/source/drivers/jdbc/Clob.cxx b/connectivity/source/drivers/jdbc/Clob.cxx
index a157a3321b7f..cba4cf68cfe3 100644
--- a/connectivity/source/drivers/jdbc/Clob.cxx
+++ b/connectivity/source/drivers/jdbc/Clob.cxx
@@ -58,7 +58,7 @@ sal_Int64 SAL_CALL java_sql_Clob::length( ) throw(::com::sun::star::sdbc::SQLEx
static const char * cMethodName = "length";
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
out = t.pEnv->CallLongMethod( object, mID );
ThrowSQLException(t.pEnv,*this);
} //t.pEnv
@@ -75,7 +75,7 @@ OUString SAL_CALL java_sql_Clob::getSubString( sal_Int64 pos, sal_Int32 subStrin
static const char * cMethodName = "getSubString";
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
jstring out = static_cast<jstring>(t.pEnv->CallObjectMethod( object, mID,pos,subStringLength));
ThrowSQLException(t.pEnv,*this);
aStr = JavaString2String(t.pEnv,out);
@@ -108,7 +108,7 @@ sal_Int64 SAL_CALL java_sql_Clob::position( const OUString& searchstr, sal_Int32
static const char * cMethodName = "position";
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
out = t.pEnv->CallLongMethod( object, mID, args[0].l,start );
ThrowSQLException(t.pEnv,*this);
t.pEnv->DeleteLocalRef(static_cast<jstring>(args[0].l));
diff --git a/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx b/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx
index 2b7e5e642199..979d06735ff8 100644
--- a/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx
+++ b/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx
@@ -117,7 +117,7 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getTables(
{
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
OSL_VERIFY_RES( !isExceptionOccurred(t.pEnv, true),"Exception occurred!");
jvalue args[4];
@@ -346,7 +346,7 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getIndexInfo(
{
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
jvalue args[5];
// convert Parameter
args[0].l = catalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(catalog)) : 0;
@@ -387,7 +387,7 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getBestRowIdentifier
{
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
jvalue args[3];
// convert Parameter
args[0].l = catalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(catalog)) : 0;
@@ -503,7 +503,7 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getCrossReference(
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
jvalue args[6];
// convert Parameter
args[0].l = primaryCatalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(primaryCatalog)) : 0;
@@ -631,7 +631,7 @@ Reference< XResultSet > java_sql_DatabaseMetaData::impl_callResultSetMethodWithS
? "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;"
: "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;";
// obtain method ID
- obtainMethodId(t.pEnv, _pMethodName,pSignature, _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,pSignature, _inout_MethodID);
// call method
@@ -1000,7 +1000,7 @@ sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsConvert( sal_Int32 fromType
{
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, pMethodName,"(II)Z", mID);
+ obtainMethodId_throwSQL(t.pEnv, pMethodName,"(II)Z", mID);
out = t.pEnv->CallBooleanMethod( object, mID, fromType, toType );
ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
}
@@ -1342,7 +1342,7 @@ sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsResultSetConcurrency( sal_I
{
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, pMethodName,"(II)Z", mID);
+ obtainMethodId_throwSQL(t.pEnv, pMethodName,"(II)Z", mID);
out = t.pEnv->CallBooleanMethod( object, mID, setType, concurrency);
ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
}
@@ -1424,7 +1424,7 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getUDTs(
static const char * cMethodName = "getUDTs";
// dismiss Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
{
jvalue args[4];
// initialize temporary Variable
diff --git a/connectivity/source/drivers/jdbc/InputStream.cxx b/connectivity/source/drivers/jdbc/InputStream.cxx
index f1cba905e75f..f6697d7121ea 100644
--- a/connectivity/source/drivers/jdbc/InputStream.cxx
+++ b/connectivity/source/drivers/jdbc/InputStream.cxx
@@ -91,7 +91,7 @@ sal_Int32 SAL_CALL java_io_InputStream::readBytes( ::com::sun::star::uno::Sequen
static const char * cMethodName = "read";
// execute Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
out = t.pEnv->CallIntMethod( object, mID, pByteArray, 0, nBytesToRead );
if ( !out )
ThrowSQLException(t.pEnv,*this);
diff --git a/connectivity/source/drivers/jdbc/JBigDecimal.cxx b/connectivity/source/drivers/jdbc/JBigDecimal.cxx
index 4b7bc76c59f4..b65da39836af 100644
--- a/connectivity/source/drivers/jdbc/JBigDecimal.cxx
+++ b/connectivity/source/drivers/jdbc/JBigDecimal.cxx
@@ -48,7 +48,7 @@ java_math_BigDecimal::java_math_BigDecimal( const OUString& _par0 ): java_lang_O
static const char * cSignature = "(Ljava/lang/String;)V";
jobject tempObj;
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, "<init>",cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, "<init>",cSignature, mID);
jstring str = convertwchar_tToJavaString(t.pEnv,_par0.replace(',','.'));
tempObj = t.pEnv->NewObject( getMyClass(), mID, str );
@@ -69,7 +69,7 @@ java_math_BigDecimal::java_math_BigDecimal( const double& _par0 ): java_lang_Obj
static const char * cSignature = "(D)V";
jobject tempObj;
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, "<init>",cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, "<init>",cSignature, mID);
tempObj = t.pEnv->NewObject( getMyClass(), mID, _par0 );
saveRef( t.pEnv, tempObj );
t.pEnv->DeleteLocalRef( tempObj );
diff --git a/connectivity/source/drivers/jdbc/JConnection.cxx b/connectivity/source/drivers/jdbc/JConnection.cxx
index 7fe3fe8b59c2..fb3cf800fd20 100644
--- a/connectivity/source/drivers/jdbc/JConnection.cxx
+++ b/connectivity/source/drivers/jdbc/JConnection.cxx
@@ -540,7 +540,7 @@ OUString SAL_CALL java_sql_Connection::nativeSQL( const OUString& sql ) throw(SQ
static const char * cMethodName = "nativeSQL";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
// Convert Parameter
jdbc::LocalRef< jstring > str( t.env(),convertwchar_tToJavaString(t.pEnv,sql));
diff --git a/connectivity/source/drivers/jdbc/JStatement.cxx b/connectivity/source/drivers/jdbc/JStatement.cxx
index dd753399cd18..4640bcd4ac7d 100644
--- a/connectivity/source/drivers/jdbc/JStatement.cxx
+++ b/connectivity/source/drivers/jdbc/JStatement.cxx
@@ -235,7 +235,7 @@ sal_Bool SAL_CALL java_sql_Statement_Base::execute( const OUString& sql ) throw(
static const char * cMethodName = "execute";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
// convert Parameter
jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) );
{
@@ -270,7 +270,7 @@ Reference< XResultSet > SAL_CALL java_sql_Statement_Base::executeQuery( const OU
static const char * cMethodName = "executeQuery";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
// convert Parameter
jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) );
{
diff --git a/connectivity/source/drivers/jdbc/Object.cxx b/connectivity/source/drivers/jdbc/Object.cxx
index 5ca638fd7b12..cd6a5c07e022 100644
--- a/connectivity/source/drivers/jdbc/Object.cxx
+++ b/connectivity/source/drivers/jdbc/Object.cxx
@@ -217,7 +217,7 @@ void java_lang_Object::ThrowSQLException( JNIEnv* _pEnvironment, const Reference
throw aException;
}
-void java_lang_Object::obtainMethodId(JNIEnv* _pEnv,const char* _pMethodName, const char* _pSignature,jmethodID& _inout_MethodID) const
+void java_lang_Object::obtainMethodId_throwSQL(JNIEnv* _pEnv,const char* _pMethodName, const char* _pSignature,jmethodID& _inout_MethodID) const
{
if ( !_inout_MethodID )
{
@@ -228,13 +228,25 @@ void java_lang_Object::obtainMethodId(JNIEnv* _pEnv,const char* _pMethodName, co
} // if ( !_inout_MethodID )
}
+void java_lang_Object::obtainMethodId_throwRuntime(JNIEnv* _pEnv,const char* _pMethodName, const char* _pSignature,jmethodID& _inout_MethodID) const
+{
+ if ( !_inout_MethodID )
+ {
+ _inout_MethodID = _pEnv->GetMethodID( getMyClass(), _pMethodName, _pSignature );
+ OSL_ENSURE( _inout_MethodID, _pSignature );
+ if ( !_inout_MethodID )
+ throw RuntimeException();
+ } // if ( !_inout_MethodID )
+}
+
+
bool java_lang_Object::callBooleanMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) const
{
jboolean out( sal_False );
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callBooleanMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"()Z", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"()Z", _inout_MethodID);
// call method
out = t.pEnv->CallBooleanMethod( object, _inout_MethodID );
ThrowSQLException( t.pEnv, NULL );
@@ -247,7 +259,7 @@ bool java_lang_Object::callBooleanMethodWithIntArg( const char* _pMethodName, jm
jboolean out( sal_False );
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callBooleanMethodWithIntArg: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(I)Z", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(I)Z", _inout_MethodID);
// call method
out = t.pEnv->CallBooleanMethod( object, _inout_MethodID, _nArgument );
ThrowSQLException( t.pEnv, NULL );
@@ -266,7 +278,7 @@ sal_Int32 java_lang_Object::callIntMethod_Throw(const char* _pMethodName, jmetho
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"()I", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"()I", _inout_MethodID);
// call method
jint out( t.pEnv->CallIntMethod( object, _inout_MethodID ) );
ThrowSQLException( t.pEnv, NULL );
@@ -277,7 +289,7 @@ sal_Int32 java_lang_Object::callIntMethod_Nothrow(const char* _pMethodName, jmet
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"()I", _inout_MethodID);
+ obtainMethodId_throwRuntime(t.pEnv, _pMethodName,"()I", _inout_MethodID);
// call method
jint out( t.pEnv->CallIntMethod( object, _inout_MethodID ) );
isExceptionOccurred(t.pEnv,true);
@@ -288,7 +300,7 @@ sal_Int32 java_lang_Object::callIntMethodWithIntArg_Throw( const char* _pMethodN
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(I)I", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(I)I", _inout_MethodID);
// call method
jint out( t.pEnv->CallIntMethod( object, _inout_MethodID , _nArgument) );
ThrowSQLException( t.pEnv, NULL );
@@ -299,7 +311,7 @@ sal_Int32 java_lang_Object::callIntMethodWithIntArg_Nothrow( const char* _pMetho
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(I)I", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(I)I", _inout_MethodID);
// call method
jint out( t.pEnv->CallIntMethod( object, _inout_MethodID , _nArgument) );
isExceptionOccurred(t.pEnv,true);
@@ -310,7 +322,7 @@ void java_lang_Object::callVoidMethod_Throw( const char* _pMethodName, jmethodID
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"()V", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"()V", _inout_MethodID);
// call method
t.pEnv->CallVoidMethod( object, _inout_MethodID );
@@ -321,7 +333,7 @@ void java_lang_Object::callVoidMethod_Nothrow( const char* _pMethodName, jmethod
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"()V", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"()V", _inout_MethodID);
// call method
t.pEnv->CallVoidMethod( object, _inout_MethodID );
@@ -332,7 +344,7 @@ void java_lang_Object::callVoidMethodWithIntArg_Throw( const char* _pMethodName,
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(I)V", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(I)V", _inout_MethodID);
// call method
t.pEnv->CallVoidMethod( object, _inout_MethodID,_nArgument );
@@ -343,7 +355,7 @@ void java_lang_Object::callVoidMethodWithIntArg_Nothrow( const char* _pMethodNam
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(I)V", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(I)V", _inout_MethodID);
// call method
t.pEnv->CallVoidMethod( object, _inout_MethodID,_nArgument );
@@ -354,7 +366,7 @@ void java_lang_Object::callVoidMethodWithBoolArg_Throw( const char* _pMethodName
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(Z)V", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(Z)V", _inout_MethodID);
// call method
t.pEnv->CallVoidMethod( object, _inout_MethodID,int(_nArgument) );
ThrowSQLException( t.pEnv, NULL );
@@ -364,7 +376,7 @@ void java_lang_Object::callVoidMethodWithBoolArg_Nothrow( const char* _pMethodNa
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(Z)V", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(Z)V", _inout_MethodID);
// call method
t.pEnv->CallVoidMethod( object, _inout_MethodID,int(_nArgument) );
isExceptionOccurred(t.pEnv,true);
@@ -383,7 +395,7 @@ OUString java_lang_Object::callStringMethod( const char* _pMethodName, jmethodID
jobject java_lang_Object::callObjectMethod( JNIEnv * _pEnv,const char* _pMethodName,const char* _pSignature, jmethodID& _inout_MethodID ) const
{
// obtain method ID
- obtainMethodId(_pEnv, _pMethodName,_pSignature, _inout_MethodID);
+ obtainMethodId_throwSQL(_pEnv, _pMethodName,_pSignature, _inout_MethodID);
// call method
jobject out = _pEnv->CallObjectMethod( object, _inout_MethodID);
ThrowSQLException( _pEnv, NULL );
@@ -393,7 +405,7 @@ jobject java_lang_Object::callObjectMethod( JNIEnv * _pEnv,const char* _pMethodN
jobject java_lang_Object::callObjectMethodWithIntArg( JNIEnv * _pEnv,const char* _pMethodName,const char* _pSignature, jmethodID& _inout_MethodID , sal_Int32 _nArgument) const
{
- obtainMethodId(_pEnv, _pMethodName,_pSignature, _inout_MethodID);
+ obtainMethodId_throwSQL(_pEnv, _pMethodName,_pSignature, _inout_MethodID);
// call method
jobject out = _pEnv->CallObjectMethod( object, _inout_MethodID,_nArgument );
ThrowSQLException( _pEnv, NULL );
@@ -412,7 +424,7 @@ void java_lang_Object::callVoidMethodWithStringArg( const char* _pMethodName, jm
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(Ljava/lang/String;)V", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(Ljava/lang/String;)V", _inout_MethodID);
jdbc::LocalRef< jstring > str( t.env(),convertwchar_tToJavaString(t.pEnv,_nArgument));
// call method
@@ -424,7 +436,7 @@ sal_Int32 java_lang_Object::callIntMethodWithStringArg( const char* _pMethodName
{
SDBThreadAttach t;
OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethodWithStringArg: no Java environment anymore!" );
- obtainMethodId(t.pEnv, _pMethodName,"(Ljava/lang/String;)I", _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,"(Ljava/lang/String;)I", _inout_MethodID);
//TODO: Check if the code below is needed
//jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) );
diff --git a/connectivity/source/drivers/jdbc/PreparedStatement.cxx b/connectivity/source/drivers/jdbc/PreparedStatement.cxx
index 29926581c246..41d6ab87d2a4 100644
--- a/connectivity/source/drivers/jdbc/PreparedStatement.cxx
+++ b/connectivity/source/drivers/jdbc/PreparedStatement.cxx
@@ -130,7 +130,7 @@ void SAL_CALL java_sql_PreparedStatement::setString( sal_Int32 parameterIndex, c
static const char * cMethodName = "setString";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
jdbc::LocalRef< jstring > str( t.env(),convertwchar_tToJavaString(t.pEnv,x));
t.pEnv->CallVoidMethod( object, mID, parameterIndex,str.get());
// and clean up
@@ -332,7 +332,7 @@ void SAL_CALL java_sql_PreparedStatement::setObjectWithInfo( sal_Int32 parameter
static const char * cMethodName = "setObject";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
{
jobject obj = NULL;
double nTemp = 0.0;
@@ -430,7 +430,7 @@ void SAL_CALL java_sql_PreparedStatement::setBytes( sal_Int32 parameterIndex, co
static const char * cMethodName = "setBytes";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
jbyteArray pByteArray = t.pEnv->NewByteArray(x.getLength());
t.pEnv->SetByteArrayRegion(pByteArray,0,x.getLength(),(jbyte*)x.getConstArray());
t.pEnv->CallVoidMethod( object, mID, parameterIndex,pByteArray);
@@ -456,7 +456,7 @@ void SAL_CALL java_sql_PreparedStatement::setCharacterStream( sal_Int32 paramete
static const char * cMethodName = "setCharacterStream";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
Sequence< sal_Int8 > aSeq;
if ( x.is() )
x->readBytes( aSeq, length );
@@ -503,7 +503,7 @@ void SAL_CALL java_sql_PreparedStatement::setBinaryStream( sal_Int32 parameterIn
static const char * cMethodName = "setBinaryStream";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
{
Sequence< sal_Int8 > aSeq;
if ( x.is() )
diff --git a/connectivity/source/drivers/jdbc/Reader.cxx b/connectivity/source/drivers/jdbc/Reader.cxx
index b62da3a64781..02114d4a9306 100644
--- a/connectivity/source/drivers/jdbc/Reader.cxx
+++ b/connectivity/source/drivers/jdbc/Reader.cxx
@@ -65,7 +65,7 @@ sal_Int32 SAL_CALL java_io_Reader::available( ) throw(::com::sun::star::io::Not
static const char * cMethodName = "available";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
out = t.pEnv->CallBooleanMethod( object, mID);
ThrowSQLException(t.pEnv,*this);
} //t.pEnv
@@ -90,7 +90,7 @@ sal_Int32 SAL_CALL java_io_Reader::readBytes( ::com::sun::star::uno::Sequence< s
static const char * cMethodName = "read";
// Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
out = t.pEnv->CallIntMethod( object, mID, pCharArray, 0, nBytesToRead );
if ( !out )
ThrowSQLException(t.pEnv,*this);
diff --git a/connectivity/source/drivers/jdbc/ResultSet.cxx b/connectivity/source/drivers/jdbc/ResultSet.cxx
index 0f20a75b542c..361e4b4f63be 100644
--- a/connectivity/source/drivers/jdbc/ResultSet.cxx
+++ b/connectivity/source/drivers/jdbc/ResultSet.cxx
@@ -304,7 +304,7 @@ Any SAL_CALL java_sql_ResultSet::getObject( sal_Int32 columnIndex, const Referen
static const char * cSignature = "(I)Ljava/lang/Object;";
static const char * cMethodName = "getObject";
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
}
out = t.pEnv->CallObjectMethodA( object, mID, args);
@@ -634,7 +634,7 @@ void SAL_CALL java_sql_ResultSet::updateString( sal_Int32 columnIndex, const OUS
static const char * cSignature = "(ILjava/lang/String;)V";
static const char * cMethodName = "updateString";
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
}
{
@@ -660,7 +660,7 @@ void SAL_CALL java_sql_ResultSet::updateBytes( sal_Int32 columnIndex, const ::co
static const char * cSignature = "(I[B)V";
static const char * cMethodName = "updateBytes";
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
}
{
@@ -713,7 +713,7 @@ void SAL_CALL java_sql_ResultSet::updateBinaryStream( sal_Int32 columnIndex, con
{
static const char * cSignature = "(ILjava/io/InputStream;I)V";
static const char * cMethodName = "updateBinaryStream";
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
}
{
@@ -744,7 +744,7 @@ void SAL_CALL java_sql_ResultSet::updateCharacterStream( sal_Int32 columnIndex,
{
static const char * cSignature = "(ILjava/io/Reader;I)V";
static const char * cMethodName = "updateCharacterStream";
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
}
{
@@ -792,7 +792,7 @@ void SAL_CALL java_sql_ResultSet::updateNumericObject( sal_Int32 columnIndex, co
static const char * cSignature = "(ILjava/lang/Object;I)V";
static const char * cMethodName = "updateObject";
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
}
{
diff --git a/connectivity/source/drivers/jdbc/tools.cxx b/connectivity/source/drivers/jdbc/tools.cxx
index 46cc4c4f49c7..ee21f0703797 100644
--- a/connectivity/source/drivers/jdbc/tools.cxx
+++ b/connectivity/source/drivers/jdbc/tools.cxx
@@ -50,7 +50,7 @@ void java_util_Properties::setProperty(const OUString& key, const OUString& valu
static const char * cMethodName = "setProperty";
// Turn off Java-Call
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, cMethodName,cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
out = t.pEnv->CallObjectMethod(object, mID, args[0].l,args[1].l);
ThrowSQLException(t.pEnv,NULL);
t.pEnv->DeleteLocalRef(static_cast<jstring>(args[1].l));
@@ -85,7 +85,7 @@ java_util_Properties::java_util_Properties( ): java_lang_Object( NULL, (jobject)
static const char * cSignature = "()V";
jobject tempObj;
static jmethodID mID(NULL);
- obtainMethodId(t.pEnv, "<init>",cSignature, mID);
+ obtainMethodId_throwSQL(t.pEnv, "<init>",cSignature, mID);
tempObj = t.pEnv->NewObject( getMyClass(), mID);
saveRef( t.pEnv, tempObj );
t.pEnv->DeleteLocalRef( tempObj );
diff --git a/connectivity/source/inc/java/lang/Object.hxx b/connectivity/source/inc/java/lang/Object.hxx
index 28b4e438490d..0d524aeb1893 100644
--- a/connectivity/source/inc/java/lang/Object.hxx
+++ b/connectivity/source/inc/java/lang/Object.hxx
@@ -109,7 +109,8 @@ namespace connectivity
static ::rtl::Reference< jvmaccess::VirtualMachine > getVM(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext=NULL);
static jclass findMyClass(const char* _pClassName);
- void obtainMethodId(JNIEnv* _pEnv, const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID) const;
+ void obtainMethodId_throwSQL(JNIEnv* _pEnv, const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID) const;
+ void obtainMethodId_throwRuntime(JNIEnv* _pEnv, const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID) const;
bool callBooleanMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) const;
bool callBooleanMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID, sal_Int32 _nArgument ) const;
@@ -135,7 +136,7 @@ namespace connectivity
T callMethodWithIntArg(T (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) ,const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID , sal_Int32 _nArgument) const
{
SDBThreadAttach t;
- obtainMethodId(t.pEnv, _pMethodName,_pSignature, _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,_pSignature, _inout_MethodID);
T out = (t.pEnv->*pCallMethod)( object, _inout_MethodID,_nArgument);
ThrowSQLException( t.pEnv, NULL );
return out;
@@ -145,7 +146,7 @@ namespace connectivity
void callVoidMethod_Throw(const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID,sal_Int32 _nArgument, const T& _aValue) const
{
SDBThreadAttach t;
- obtainMethodId(t.pEnv, _pMethodName,_pSignature, _inout_MethodID);
+ obtainMethodId_throwSQL(t.pEnv, _pMethodName,_pSignature, _inout_MethodID);
t.pEnv->CallVoidMethod( object, _inout_MethodID,_nArgument,_aValue);
ThrowSQLException( t.pEnv, NULL );
}