Blob Blame History Raw
From 515c6cf7a3832bfc7a6eeed65704bc9eee96adc1 Mon Sep 17 00:00:00 2001
From: Lionel Elie Mamane <lionel@mamane.lu>
Date: Mon, 6 Jan 2014 16:40:59 +0100
Subject: [PATCH 7/9] fdo#37167 create statement before
 execute/wasNull/getBoolean

This populates "object" member variable.

The "createStatement" calls were removed in:

 commit b9392a36645d8632b97ad79240f483b3a1683b61
 Author: Ivo Hinkelmann <ihi@openoffice.org>
 Date:   Thu Apr 23 10:42:05 2009 +0000

    CWS-TOOLING: integrate CWS dbaperf1

This was most probably in error since the call is not removed from the
other modified member functions in this commit and/or failed to
aaccount for the scenario of no parameter (and thus no setXXX call
before execute).

Change-Id: Ic0e7b7b64ea496791f32c1416aa7d4416f909616
Reviewed-on: https://gerrit.libreoffice.org/7280
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
---
 connectivity/source/drivers/jdbc/CallableStatement.cxx | 4 ++++
 connectivity/source/drivers/jdbc/PreparedStatement.cxx | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/connectivity/source/drivers/jdbc/CallableStatement.cxx b/connectivity/source/drivers/jdbc/CallableStatement.cxx
index 7ab349f..50cce64 100644
--- a/connectivity/source/drivers/jdbc/CallableStatement.cxx
+++ b/connectivity/source/drivers/jdbc/CallableStatement.cxx
@@ -69,12 +69,16 @@ Any SAL_CALL java_sql_CallableStatement::queryInterface( const Type & rType ) th
 // -------------------------------------------------------------------------
 sal_Bool SAL_CALL java_sql_CallableStatement::wasNull(  ) throw(starsdbc::SQLException, RuntimeException)
 {
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+    createStatement(t.pEnv);
     static jmethodID mID(NULL);
     return callBooleanMethod( "wasNull", mID );
 }
 
 sal_Bool SAL_CALL java_sql_CallableStatement::getBoolean( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException)
 {
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+    createStatement(t.pEnv);
     static jmethodID mID(NULL);
     return callBooleanMethodWithIntArg( "getBoolean", mID,columnIndex );
 }
diff --git a/connectivity/source/drivers/jdbc/PreparedStatement.cxx b/connectivity/source/drivers/jdbc/PreparedStatement.cxx
index 0458ad7..5f9dafe 100644
--- a/connectivity/source/drivers/jdbc/PreparedStatement.cxx
+++ b/connectivity/source/drivers/jdbc/PreparedStatement.cxx
@@ -96,6 +96,8 @@ sal_Bool SAL_CALL java_sql_PreparedStatement::execute(  ) throw(::com::sun::star
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed);
 
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+    createStatement(t.pEnv);
     static jmethodID mID(NULL);
     return callBooleanMethod( "execute", mID );
 }
@@ -106,6 +108,9 @@ sal_Int32 SAL_CALL java_sql_PreparedStatement::executeUpdate(  ) throw(::com::su
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed);
     m_aLogger.log( LogLevel::FINE, STR_LOG_EXECUTING_PREPARED_UPDATE );
+
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+    createStatement(t.pEnv);
     static jmethodID mID(NULL);
     return callIntMethod("executeUpdate",mID);
 }
-- 
1.8.4.2