[teiid-issues] [JBoss JIRA] (TEIID-5068) Couchbase retrieval causes ClassCastException

Steven Hawkins (JIRA) issues at jboss.org
Tue Sep 19 08:59:01 EDT 2017


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

Steven Hawkins updated TEIID-5068:
----------------------------------
    Summary: Couchbase retrieval causes ClassCastException  (was: Couchbase cast to biginteger causes ClassCastException)


> Couchbase retrieval causes ClassCastException
> ---------------------------------------------
>
>                 Key: TEIID-5068
>                 URL: https://issues.jboss.org/browse/TEIID-5068
>             Project: Teiid
>          Issue Type: Bug
>          Components: Misc. Connectors
>    Affects Versions: 8.12.x-6.4
>            Reporter: Jan Stastny
>            Assignee: Steven Hawkins
>            Priority: Critical
>             Fix For: 10.0, 8.12.x-6.4, 9.3.4
>
>
> There seems to be issue with casting to biginteger datatype.
> It applies to both cases:
> # Model column as integer in Source model, CAST to biginteger in a View
> # Model column as biginteger in Source model
> In both cases a ClassCastException is thrown.
> Here I provide the artifacts first case:
> {code:xml|title=vdb}
> <vdb name="couchbase" version="1">
>   <model name="Couchbase_small" type="PHYSICAL" visible="true">
>     <source name="couchbase_small" connection-jndi-name="java:/couchbase_small" translator-name="couchbase"/>
>     <metadata type="DDL">
>       SET NAMESPACE 'http://www.teiid.org/translator/couchbase/2017' AS teiid_couchbase;
>     CREATE FOREIGN TABLE SmallA (
>       documentID string,
>       FloatNum integer OPTIONS (NAMEINSOURCE '`FloatNum`'),
>       IntKey integer PRIMARY KEY OPTIONS (NAMEINSOURCE '`IntKey`'),
>       BigIntegerValue integer OPTIONS (NAMEINSOURCE '`BigIntegerValue`'),
>       StringKey string OPTIONS (NAMEINSOURCE '`StringKey`'),
>       CharValue string OPTIONS (NAMEINSOURCE '`CharValue`'),
>       LongNum integer OPTIONS (NAMEINSOURCE '`LongNum`'),
>       type string OPTIONS (NAMEINSOURCE '`type`'),
>       DoubleNum integer OPTIONS (NAMEINSOURCE '`DoubleNum`'),
>       ObjectValue string OPTIONS (NAMEINSOURCE '`ObjectValue`'),
>       ShortValue integer OPTIONS (NAMEINSOURCE '`ShortValue`'),
>       BigDecimalValue integer OPTIONS (NAMEINSOURCE '`BigDecimalValue`'),
>       DateValue string OPTIONS (NAMEINSOURCE '`DateValue`'),
>       BooleanValue boolean OPTIONS (NAMEINSOURCE '`BooleanValue`'),
>       TimestampValue string OPTIONS (NAMEINSOURCE '`TimestampValue`'),
>       ByteNum integer OPTIONS (NAMEINSOURCE '`ByteNum`'),
>       StringNum string OPTIONS (NAMEINSOURCE '`StringNum`'),
>       TimeValue string OPTIONS (NAMEINSOURCE '`TimeValue`'),
>       IntNum integer OPTIONS (NAMEINSOURCE '`IntNum`')
>     ) OPTIONS (NAMEINSOURCE '`dvqe_small`', UPDATABLE FALSE, "teiid_couchbase:ISARRAYTABLE" 'false', "teiid_couchbase:NAMEDTYPEPAIR" '`type`:''SmallA''');
>     </metadata>
>   </model>
>   <model name="BQT1" type="VIRTUAL">
>     <metadata type="DDL">
> CREATE VIEW SmallA (
>       IntKey integer PRIMARY KEY,
>       StringKey string,
>       IntNum integer,
>       StringNum string,
>       FloatNum float,
>       LongNum long,
>       DoubleNum double,
>       ByteNum byte,
>       DateValue date,
>       TimeValue time,
>       TimestampValue timestamp,
>       BooleanValue boolean,
>       CharValue char(1),
>       ShortValue short,
>       BigIntegerValue biginteger,
>       BigDecimalValue bigdecimal,
>       ObjectValue object)
>     AS
>       SELECT
>         IntKey, StringKey, IntNum, StringNum, convert(FloatNum, float) AS FloatNum, convert(LongNum, long) AS LongNum,
>         convert(DoubleNum, double) AS DoubleNum, convert(ByteNum, byte) AS ByteNum, PARSEDATE(DateValue,'yyyy-MM-dd') AS DateValue,
>         PARSETIME(TimeValue,'HH:mm:ss') AS TimeValue, PARSETIMESTAMP(TimestampValue,'yyyy-MM-dd HH:mm:ss.S') AS TimstampValue, BooleanValue,
>         convert(CharValue, char) AS CharValue, convert(ShortValue, short) AS ShortValue, convert(BigIntegerValue, biginteger) AS BigIntegerValue,
>         convert(BigDecimalValue, bigdecimal) AS BigDecimalValue, convert(ObjectValue, object) AS ObjectValue
>       FROM
>         Couchbase_small.SmallA;
>     </metadata>
>   </model>
> </vdb>
> {code}
> Query against Source model works fine as expected:
> {code:sql|title=Query against source}
> SELECT BigIntegerValue FROM Couchbase_small.SMallA
> {code}
> returns correct results.
> But query against the view:
> {code:sql|title=Query against view}
> SELECT BigIntegerValue FROM BQT1.SMallA
> {code}
> throws:
> {code:title=server.log}
> 12:41:23,221 ERROR [org.teiid.CONNECTOR] (Worker9_QueryProcessorQueue75) Connector worker process failed for atomic-request=17PK+37nW05t.1.0.18: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigInteger
> 	at com.couchbase.client.java.document.json.JsonObject.getBigInteger(JsonObject.java:435) [java-client-2.4.2.jar:]
> 	at org.teiid.translator.couchbase.CouchbaseQueryExecution.next(CouchbaseQueryExecution.java:108) [translator-couchbase-8.12.11.6_4.jar:8.12.11.6_4]
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.handleBatch(ConnectorWorkItem.java:433)
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.more(ConnectorWorkItem.java:236)
> 	at sun.reflect.GeneratedMethodAccessor173.invoke(Unknown Source) [:1.8.0_121]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_121]
> 	at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_121]
> 	at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> 	at com.sun.proxy.$Proxy79.more(Unknown Source)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:309)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:112)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_121]
> 	at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_121]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_121]
> 	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_121]
> 12:41:23,228 WARN  [org.teiid.PROCESSOR] (Worker8_QueryProcessorQueue76) TEIID30020 Processing exception for request 17PK+37nW05t.1 'TEIID30504 couchbase_small: java.lang.Integer cannot be cast to java.math.BigInteger'. Originally TeiidProcessingException JsonObject.java:435. Enable more detailed logging to see the entire stacktrace.
> {code}
> Source command for query against Source model:
> {code:title=teiid-command.log}
> 12:41:12,260 INFO  [org.teiid.COMMAND_LOG] (New I/O worker #3) 17PK+37nW05t     START USER COMMAND: startTime=2017-09-18 12:41:12.259       requestID=17PK+37nW05t.0      txID=null sessionID=17PK+37nW05t        applicationName=JDBC          principal=user at teiid-security vdbName=couchbase   vdbVersion=1        sql=SELECT bigintegerValue FROM Couchbase_small.SMallA
> 12:41:13,490 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue71) 17PK+37nW05t   START DATA SRC COMMAND:       startTime=2017-09-18 12:41:13.49        requestID=17PK+37nW05t.0      sourceCommandID=0   executionID=17      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=17PK+37nW05t        principal=user at teiid-security sql=SELECT Couchbase_small.SmallA.BigIntegerValue AS c_0 FROM Couchbase_small.SmallA LIMIT 100
> 12:41:13,490 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue71) 17PK+37nW05t   SOURCE SRC COMMAND: endTime=2017-09-18 12:41:13.49          requestID=17PK+37nW05t.0      sourceCommandID=0   executionID=17      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=17PK+37nW05t        principal=user at teiid-security sourceCommand=[SELECT `$cb_c1_BigIntegerValue` c_0 FROM `dvqe_small` `$cb_t1` LET `$cb_c1_BigIntegerValue` = `$cb_t1`.`BigIntegerValue` WHERE `$cb_t1`.`type` = 'SmallA' LIMIT 100]
> 12:41:14,190 DEBUG [org.teiid.COMMAND_LOG] (Worker8_QueryProcessorQueue72) 17PK+37nW05t   END SRC COMMAND:    endTime=2017-09-18 12:41:14.19          requestID=17PK+37nW05t.0      sourceCommandID=0   executionID=17      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=17PK+37nW05t        principal=user at teiid-security finalRowCount=50    cpuTime(ns)=9733973
> 12:41:14,196 INFO  [org.teiid.COMMAND_LOG] (Worker8_QueryProcessorQueue73) 17PK+37nW05t   END USER COMMAND:   endTime=2017-09-18 12:41:14.195         requestID=17PK+37nW05t.0      txID=null sessionID=17PK+37nW05t        principal=user at teiid-security vdbName=couchbase   vdbVersion=1        finalRowCount=50
> {code}
> Source command for query against View:
> {code:title=teiid-command.log - error}
> 2:41:22,950 INFO  [org.teiid.COMMAND_LOG] (New I/O worker #3) 17PK+37nW05t     START USER COMMAND: startTime=2017-09-18 12:41:22.949       requestID=17PK+37nW05t.1      txID=null sessionID=17PK+37nW05t        applicationName=JDBC          principal=user at teiid-security vdbName=couchbase   vdbVersion=1        sql=SELECT bigintegerValue FROM BQT1.SMallA
> 12:41:22,957 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue75) 17PK+37nW05t   START DATA SRC COMMAND:       startTime=2017-09-18 12:41:22.957       requestID=17PK+37nW05t.1      sourceCommandID=0   executionID=18      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=17PK+37nW05t        principal=user at teiid-security sql=SELECT convert(Couchbase_small.SmallA.BigIntegerValue, biginteger) AS c_0 FROM Couchbase_small.SmallA LIMIT 100
> 12:41:22,958 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue75) 17PK+37nW05t   SOURCE SRC COMMAND: endTime=2017-09-18 12:41:22.958         requestID=17PK+37nW05t.1      sourceCommandID=0   executionID=18      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=17PK+37nW05t        principal=user at teiid-security sourceCommand=[SELECT TONUMBER(`$cb_c1_BigIntegerValue`) c_0 FROM `dvqe_small` `$cb_t1` LET `$cb_c1_BigIntegerValue` = `$cb_t1`.`BigIntegerValue` WHERE `$cb_t1`.`type` = 'SmallA' LIMIT 100]
> 12:41:23,221 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue75) 17PK+37nW05t   ERROR SRC COMMAND:  endTime=2017-09-18 12:41:23.22          requestID=17PK+37nW05t.1      sourceCommandID=0   executionID=18      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=17PK+37nW05t        principal=user at teiid-security
> 12:41:23,226 DEBUG [org.teiid.COMMAND_LOG] (Worker8_QueryProcessorQueue76) 17PK+37nW05t   END SRC COMMAND:    endTime=2017-09-18 12:41:23.226         requestID=17PK+37nW05t.1      sourceCommandID=0   executionID=18      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=17PK+37nW05t        principal=user at teiid-security finalRowCount=0     cpuTime(ns)=5965611
> 12:41:23,227 INFO  [org.teiid.COMMAND_LOG] (Worker8_QueryProcessorQueue76) 17PK+37nW05t   ERROR USER COMMAND: endTime=2017-09-18 12:41:23.227         requestID=17PK+37nW05t.1      txID=null sessionID=17PK+37nW05t        principal=user at teiid-security vdbName=couchbase   vdbVersion=1        finalRowCount=null
> 12:41:23,237 INFO  [org.teiid.COMMAND_LOG] (Worker8_QueryProcessorQueue76) 17PK+37nW05t   END USER COMMAND:   endTime=2017-09-18 12:41:23.237         requestID=17PK+37nW05t.1      txID=null sessionID=17PK+37nW05t        principal=user at teiid-security vdbName=couchbase   vdbVersion=1        finalRowCount=0
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the teiid-issues mailing list