[teiid-issues] [JBoss JIRA] (TEIID-2056) Class cast exception when inserting blob. (java.lang.ClassCastException: org.teiid.core.types.BlobType cannot be cast to oracle.sql.BLOB). When using JPA(Hibernate implementation) in association with Teiid.

Steven Hawkins (JIRA) jira-events at lists.jboss.org
Mon May 21 15:06:17 EDT 2012


     [ https://issues.jboss.org/browse/TEIID-2056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins resolved TEIID-2056.
-----------------------------------

    Resolution: Done


Updated the JDBCExecutionFactory to check for an overridable method useStreamsForLobs and set the OracleExecutionFactory to return true.  I'm not sure what if any other sources may need the same change.
                
> Class cast exception when inserting blob. (java.lang.ClassCastException: org.teiid.core.types.BlobType cannot be cast to oracle.sql.BLOB). When using JPA(Hibernate implementation) in association with Teiid.
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TEIID-2056
>                 URL: https://issues.jboss.org/browse/TEIID-2056
>             Project: Teiid
>          Issue Type: Bug
>          Components: JDBC Connector
>    Affects Versions: 7.0
>         Environment: JBOSS AS 5.1
>            Reporter: bunty lava
>            Assignee: Steven Hawkins
>              Labels: JPA, blob, hibernate, issues, teiid
>             Fix For: 7.7.1, 8.1
>
>
> Using JPA which references teiid data source and vdb is defined with the translator as oracle.
> java.lang.ClassCastException: org.teiid.core.types.BlobType cannot be cast to oracle.sql.BLOB
> 	at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:8752)
> 	at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8286)
> 	at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:8868)
> 	at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:240)
> 	at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:703)
> 	at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:853)
> 	at org.teiid.translator.jdbc.oracle.OracleExecutionFactory.bindValue(OracleExecutionFactory.java:436)
> 	at org.teiid.translator.jdbc.JDBCBaseExecution.bindPreparedStatementValues(JDBCBaseExecution.java:91)
> 	at org.teiid.translator.jdbc.JDBCUpdateExecution.executePreparedBatch(JDBCUpdateExecution.java:238)
> 	at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:223)
> 	at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:74)
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:252)
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:272)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:344)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:222)
> 	at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:271)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> 	at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:176)
> 	at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:139)
> 	at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:105)
> 	at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:147)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:374)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:287)
> 	at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:49)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:215)
> 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:232)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:118)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:288)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> 19:37:06,302 WARN  [CONNECTOR] Connector worker process failed for atomic-request=NGLw6aBKqfxV.39.0.159
> [JDBCExecutionException] 0: Error Code:0 Message:'Error; - nested throwable: (java.lang.ClassCastException: org.teiid.core.types.BlobType cannot be cast to oracle.sql.BLOB)' error executing statement(s): [Prepared Values: [1223454343, 3213232333, {ts '2012-05-21 19:37:03.333'}, NULL, 'org.teiid.core.types.BlobImpl at 22acff']
> 1 [NestedSQLException]Error; - nested throwable: (java.lang.ClassCastException: org.teiid.core.types.BlobType cannot be cast to oracle.sql.BLOB)
> 2 [ClassCastException]org.teiid.core.types.BlobType cannot be cast to oracle.sql.BLOB
> 	at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:228)
> 	at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:74)
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:252)
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:272)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:344)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:222)
> 	at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:271)
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> 	at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:176)
> 	at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:139)
> 	at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:105)
> 	at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:147)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:374)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:287)
> 	at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:49)
> 	at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:215)
> 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:232)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:118)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:288)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the teiid-issues mailing list