summaryrefslogtreecommitdiff
path: root/connectivity/source/drivers/jdbc/Object.cxx
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/source/drivers/jdbc/Object.cxx
parentd6ce524de5b05b69fedf8ec43e8bd3fdd01a2cc4 (diff)
coverity#706317 Uncaught exception
Change-Id: I8b39addd8d4b9f7d68d0f7a317d1dff7388aba93
Diffstat (limited to 'connectivity/source/drivers/jdbc/Object.cxx')
-rw-r--r--connectivity/source/drivers/jdbc/Object.cxx46
1 files changed, 29 insertions, 17 deletions
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 ) );