[ 
https://issues.apache.org/jira/browse/ARIES-1171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16029412#comment-16029412
 ] 

ASF subversion and git services commented on ARIES-1171:
--------------------------------------------------------

Commit 1796860 from [[email protected]] in branch 'aries/trunk'
[ https://svn.apache.org/r1796860 ]

[ARIES-1550] getConnection with null user. Closes #47

Call underlying datasource“s getConnection() if no
aries.xa.username is set. Relates to ARIES-1171.

> Aries transaction-jdbc invokes JDBC drivers getXAConnection(String username, 
> String password) but passes null for both arguments
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARIES-1171
>                 URL: https://issues.apache.org/jira/browse/ARIES-1171
>             Project: Aries
>          Issue Type: Bug
>          Components: Transaction
>    Affects Versions: transaction-jdbc-1.0.0
>            Reporter: Torsten Mielke
>            Assignee: Guillaume Nodet
>              Labels: XA, jdbc, security, transaction
>             Fix For: transaction-jdbc-2.0.0
>
>         Attachments: ARIES-1171.patch
>
>
> This is rather a bug in the tranql JDBC driver but since that project isn't 
> so active anymore it may be better raised here. 
> Consider an Oracle JDBC driver exposed as OSGi service such as in the 
> following blueprint:
> {code:xml}
>     <bean id="dataSource" class="oracle.jdbc.xa.client.OracleXADataSource" >
>         <property name="URL" value="jdbc:oracle:thin:@localhost:1521:XE" />
>         <property name="user" value="admin" />
>         <property name="password" value="oracle" />
>         <property name="connectionCachingEnabled" value="false" />
>     </bean>
>     <service interface="javax.sql.XADataSource" ref="dataSource">
>       <service-properties>
>         <entry key="osgi.jndi.service.name" value="jdbc/oracle"/>
>         <entry key="datasource.name" value="Oracle"/>
>       </service-properties>
>     </service>
> {code}
> When another bundle uses this driver to open a JDBC connection, it is most 
> likely going to raise the following error (full error below [1]):
> {code}
>  java.sql.SQLException: Invalid argument(s) in call
> {code}
> This particular error will only occur with the Oracle ojdbc6 JDBC driver. 
> With MySQL 5.1.26 I did not have any problems but other JDBC drivers could 
> potentially raise different errors. 
> What that error means is that the call to the Oracle JDBC driver's
> {code}
> public XAConnection getXAConnection(String userName, String passwd)
> {code}
> passes in null for the username and password, which the driver does not like 
> and raises the exception.
> The point is that we probably should not call getXAConnection(String 
> userName, String passwd) if we have no credentials to pass in but instead use 
> the method getXAConnection() so that the configured credentials of the JDBC 
> driver are used. 
> {code}
> [1]
> org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC 
> Connection; nested exception is java.sql.SQLException: Invalid argument(s) in 
> call
>       at 
> org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)[264:org.apache.servicemix.bundles.spring-jdbc:3.2.8.RELEASE_1]
>       at 
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:575)[264:org.apache.servicemix.bundles.spring-jdbc:3.2.8.RELEASE_1]
>       at 
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:617)[264:org.apache.servicemix.bundles.spring-jdbc:3.2.8.RELEASE_1]
>       at 
> org.apache.camel.test.TestProcessor.insert(TestProcessor.java:55)[255:dts.filestore.routes-trimmed-6.1:1.0.0.SNAPSHOT]
>       at 
> org.apache.camel.test.TestProcessor.process(TestProcessor.java:46)[255:dts.filestore.routes-trimmed-6.1:1.0.0.SNAPSHOT]
>       at 
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:97)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at 
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at 
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at 
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at 
> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:139)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at 
> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:64)[142:org.apache.camel.camel-core:2.12.0.redhat-610379]
>       at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_45]
>       at java.util.TimerThread.run(Timer.java:505)[:1.7.0_45]
> Caused by: java.sql.SQLException: Invalid argument(s) in call
>       at 
> oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:209)[253:wrap_mvn_com.oracle_ojdbc6_11.2.0:0]
>       at 
> org.tranql.connector.jdbc.AbstractXADataSourceMCF.getPhysicalConnection(AbstractXADataSourceMCF.java:76)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.tranql.connector.jdbc.AbstractXADataSourceMCF.createManagedConnection(AbstractXADataSourceMCF.java:66)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.MCFConnectionInterceptor.getConnection(MCFConnectionInterceptor.java:48)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.XAResourceInsertionInterceptor.getConnection(XAResourceInsertionInterceptor.java:41)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor.internalGetConnection(SinglePoolConnectionInterceptor.java:70)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionInterceptor.getConnection(AbstractSinglePoolConnectionInterceptor.java:80)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.getConnection(TransactionEnlistingInterceptor.java:49)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.getConnection(TransactionCachingInterceptor.java:109)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getConnection(ConnectionHandleInterceptor.java:43)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection(TCCLInterceptor.java:39)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.getConnection(ConnectionTrackingInterceptor.java:66)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:81)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at 
> org.tranql.connector.jdbc.TranqlDataSource.getConnection(TranqlDataSource.java:62)[118:org.apache.aries.transaction.jdbc:1.0.1.redhat-610379]
>       at Proxy1fba8d14_d2b7_481d_86bd_bdb4e72fa591.getConnection(Unknown 
> Source)[:]
>       at 
> org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)[264:org.apache.servicemix.bundles.spring-jdbc:3.2.8.RELEASE_1]
>       at 
> org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)[264:org.apache.servicemix.bundles.spring-jdbc:3.2.8.RELEASE_1]
>       ... 15 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to