[teiid-issues] [JBoss JIRA] (TEIID-2440) Unable to create JDBC connection to Teiid 8.3 Final from Designer

Paul Richardson (JIRA) jira-events at lists.jboss.org
Wed Mar 20 09:54:43 EDT 2013


    [ https://issues.jboss.org/browse/TEIID-2440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12762125#comment-12762125 ] 

Paul Richardson commented on TEIID-2440:
----------------------------------------

This has been confirmed as a problem with designer's version of the teiid 8.3.x code. However, it does demonstrate a brittleness in teiid's code in its reliance on version number:

* Teiid uses a version value in the handshake communication with the server;
* The version is gleaned from the application.properties file, which starts out in the source version as ${project.version};
* In the build version, maven replaces this variable with the version of teiid, ie. 8.3.0.Final;
* Designer's eclipse build never did this substitution since it was never required. Consequently, the plugin version sends the value '${project.version}' to the server in the handshake;
* The version is used for determining whether to wrap message contents in a SealedObject;
* If the version is less than 8.3 then SealedObject is used;
* The odd thing is that version is also gleaned from a serialized handshake object and this
correctly sets the client version to 8.3.0.Final. Consequently, although the client version is set correctly the server version is set to '${project.version} and as a result the client sends messages without SealedObject but the server returns messages wrapped in SealedObjects, leading to the observed ClassCastException.

* Designer has modified the properties file by filling in the correct values rather than relying on variables.

* Maybe consider avoiding the use of version variables in the code and instead prefer to remove SealedObject message wrapping entirely. If the server is older and does return SealedObject messages then simply test the class of the message content and unseal accordingly. Difficult to see the benefit of keeping such code in the client/server if it is effectively deprecated.
                
> Unable to create JDBC connection to Teiid 8.3 Final from Designer
> -----------------------------------------------------------------
>
>                 Key: TEIID-2440
>                 URL: https://issues.jboss.org/browse/TEIID-2440
>             Project: Teiid
>          Issue Type: Bug
>            Reporter: Barry LaFond
>            Assignee: Steven Hawkins
>
> Upgraded Teiid designer to 8.3 Final bits
> Tried to Preview a table and received following exception:
> !ENTRY org.teiid.designer.dqp.ui 4 0 2013-03-19 11:33:24.518
> !MESSAGE javax.crypto.SealedObject cannot be cast to org.teiid.client.security.LogonResult
> !STACK 0
> java.lang.ClassCastException: javax.crypto.SealedObject cannot be cast to org.teiid.client.security.LogonResult
> 	at sun.proxy.$Proxy27.logon(Unknown Source)
> 	at org.teiid.net.socket.SocketServerConnection.logon(SocketServerConnection.java:173)
> 	at org.teiid.net.socket.SocketServerConnection.selectServerInstance(SocketServerConnection.java:125)
> 	at org.teiid.net.socket.SocketServerConnection.<init>(SocketServerConnection.java:92)
> 	at org.teiid.net.socket.SocketServerConnectionFactory.getConnection(SocketServerConnectionFactory.java:312)
> 	at org.teiid.jdbc.SocketProfile.connect(SocketProfile.java:54)
> 	at org.teiid.jdbc.TeiidDriver.connect(TeiidDriver.java:107)
> 	at org.teiid.jdbc.TeiidDriver.connect(TeiidDriver.java:1)
> 	at org.teiid.datatools.connectivity.TeiidJDBCConnection.createConnection(TeiidJDBCConnection.java:83)
> 	at org.eclipse.datatools.connectivity.DriverConnectionBase.internalCreateConnection(DriverConnectionBase.java:105)
> 	at org.eclipse.datatools.connectivity.DriverConnectionBase.open(DriverConnectionBase.java:54)
> 	at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.open(JDBCConnection.java:73)
> 	at org.teiid.datatools.connectivity.TeiidJDBCConnectionFactory.createConnection(TeiidJDBCConnectionFactory.java:23)
> 	at org.eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFactoryProvider.java:83)
> 	at org.eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.java:359)
> 	at org.teiid.designer.runtime.ui.preview.PreviewDataWorker.getSqlConnection(PreviewDataWorker.java:621)
> 	at org.teiid.designer.runtime.ui.preview.PreviewDataWorker.internalRun(PreviewDataWorker.java:398)
> 	at org.teiid.designer.runtime.ui.preview.PreviewDataWorker.run(PreviewDataWorker.java:263)
> 	at org.teiid.designer.runtime.ui.preview.PreviewTableDataContextAction.run(PreviewTableDataContextAction.java:99)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the teiid-issues mailing list