User: ihi Date: 2007-11-27 12:23:41+0000 Modified: dba/connectivity/source/drivers/jdbc/JConnection.cxx
Log: INTEGRATION: CWS dba24lms (1.7.8); FILE MERGED 2007/11/14 12:52:15 oj 1.7.8.1: #i11746# insert Ignore Currency File Changes: Directory: /dba/connectivity/source/drivers/jdbc/ ================================================= File [changed]: JConnection.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/jdbc/JConnection.cxx?r1=1.8&r2=1.9 Delta lines: +19 -48 --------------------- --- JConnection.cxx 2007-11-21 15:03:14+0000 1.8 +++ JConnection.cxx 2007-11-27 12:23:39+0000 1.9 @@ -82,7 +82,7 @@ #include "resource/jdbc_log.hrc" #include "com/sun/star/uno/XComponentContext.hpp" #include "jvmaccess/classpath.hxx" - +#include <comphelper/sequenceashashmap.hxx> #include <jni.h> #include <list> @@ -308,6 +308,7 @@ ,m_aLogger( _rDriver.getLogger() ) ,m_bParameterSubstitution(sal_False) ,m_bIgnoreDriverPrivileges(sal_True) + ,m_bIgnoreCurrency(sal_False) { } // ----------------------------------------------------------------------------- @@ -914,6 +915,7 @@ return Any(); } // ----------------------------------------------------------------------------- +<<<<<<< JConnection.cxx namespace { bool lcl_setSystemProperties_nothrow( const java::sql::ConnectionLog& _rLogger, @@ -971,43 +973,17 @@ SDBThreadAttach t; try { + ::rtl::OUString sDriverClassPath,sDriverClass; + sDriverClass = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("JavaDriverClass")),sDriverClass); + sDriverClassPath = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("JavaDriverClassPath")),sDriverClassPath); + bAutoRetrievingEnabled = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsAutoRetrievingEnabled")),bAutoRetrievingEnabled); + sGeneratedValueStatement = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AutoRetrievingStatement")),sGeneratedValueStatement); + m_bParameterSubstitution = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParameterNameSubstitution")),m_bParameterSubstitution); + m_bIgnoreDriverPrivileges = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IgnoreDriverPrivileges")),m_bIgnoreDriverPrivileges); + m_bIgnoreCurrency = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IgnoreCurrency")),m_bIgnoreCurrency); Sequence< NamedValue > aSystemProperties; - const PropertyValue* pJavaDriverClass = 0; - const PropertyValue* pJavaDriverClassPath = 0; - const PropertyValue* pBegin = info.getConstArray(); - const PropertyValue* pEnd = pBegin + info.getLength(); - for(;pBegin != pEnd;++pBegin) - { - if (!pBegin->Name.compareToAscii("JavaDriverClass")) - { - pJavaDriverClass = pBegin; - } - else if (!pBegin->Name.compareToAscii("JavaDriverClassPath")) - { - pJavaDriverClassPath = pBegin; - } - else if(!pBegin->Name.compareToAscii("IsAutoRetrievingEnabled")) - { - OSL_VERIFY( pBegin->Value >>= bAutoRetrievingEnabled ); - } - else if(!pBegin->Name.compareToAscii("AutoRetrievingStatement")) - { - OSL_VERIFY( pBegin->Value >>= sGeneratedValueStatement ); - } - else if(!pBegin->Name.compareToAscii("ParameterNameSubstitution")) - { - OSL_VERIFY( pBegin->Value >>= m_bParameterSubstitution ); - } - else if(!pBegin->Name.compareToAscii("IgnoreDriverPrivileges")) - { - OSL_VERIFY( pBegin->Value >>= m_bIgnoreDriverPrivileges ); - } - else if(!pBegin->Name.compareToAscii("SystemProperties")) - { - OSL_VERIFY( pBegin->Value >>= aSystemProperties ); - } - } - if ( !object && pJavaDriverClass != 0 ) + aSystemProperties = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SystemProperties")),aSystemProperties); + if ( !object ) { if ( !lcl_setSystemProperties_nothrow( getLogger(), *t.pEnv, aSystemProperties ) ) ThrowLoggedSQLException( getLogger(), t.pEnv, *this ); @@ -1018,35 +994,30 @@ java_sql_SQLException_BASE::getMyClass(); java_lang_Throwable::getMyClass(); - ::rtl::OUString aStr; - OSL_VERIFY( pJavaDriverClass->Value >>= aStr ); - OSL_ASSERT( aStr.getLength()); - if ( !aStr.getLength() ) + if ( !sDriverClass.getLength() ) { m_aLogger.log( LogLevel::SEVERE, STR_LOG_NO_DRIVER_CLASS ); throw SQLException(::rtl::OUString::createFromAscii("The specified driver was empty!"),*this,::rtl::OUString(),1000,Any()); } else { - m_aLogger.log( LogLevel::INFO, STR_LOG_LOADING_DRIVER, aStr ); + m_aLogger.log( LogLevel::INFO, STR_LOG_LOADING_DRIVER, sDriverClass ); // the driver manager holds the class of the driver for later use ::std::auto_ptr< java_lang_Class > pDrvClass; - if ( pJavaDriverClassPath == 0 ) + if ( !sDriverClassPath.getLength() ) { // if forName didn't find the class it will throw an exception - pDrvClass = ::std::auto_ptr< java_lang_Class >(java_lang_Class::forName(aStr)); + pDrvClass = ::std::auto_ptr< java_lang_Class >(java_lang_Class::forName(sDriverClass)); } else { - ::rtl::OUString classpath; - OSL_VERIFY( pJavaDriverClassPath->Value >>= classpath ); LocalRef< jclass > driverClass(t.env()); LocalRef< jobject > driverClassLoader(t.env()); loadClass( m_pDriver->getContext().getUNOContext(), - t.env(), classpath, aStr, &driverClassLoader, &driverClass ); + t.env(), sDriverClassPath, sDriverClass, &driverClassLoader, &driverClass ); m_pDriverClassLoader.set( driverClassLoader ); pDrvClass.reset( new java_lang_Class( t.pEnv, driverClass.release() ) ); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
