[JBoss JIRA] (TEIID-5069) Blob getBytes() handling of input streams reads the stream multiple times without a reset
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5069?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-5069.
-----------------------------------
Fix Version/s: 10.0
9.3.4
9.2.6
Resolution: Done
Added logic similar to the translator import of DataSource values for embedded PreparedStatement parameter values so that the stream will be saved on read for potential reuse.
> Blob getBytes() handling of input streams reads the stream multiple times without a reset
> -----------------------------------------------------------------------------------------
>
> Key: TEIID-5069
> URL: https://issues.jboss.org/browse/TEIID-5069
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Driver, Query Engine
> Affects Versions: 10.0
> Reporter: christian posta
> Assignee: Steven Hawkins
> Fix For: 10.0, 9.3.4, 9.2.6
>
>
> When using mysql + hibernate + teiid-spring-boot I've noticed some issues handling Blob; i.e., the BlobImpl tries to determine the input streams' length by calling read() n number of times but then the stream is completely consumed and when later we try to getBytes() it cannot actually write out anything (in ObjectConverterUtil).
> We end up with a stack trace like this:
> {code}
> java.lang.ArrayIndexOutOfBoundsException: 0
> at com.mysql.jdbc.PreparedStatement.escapeblockFast(PreparedStatement.java:1073) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.PreparedStatement.setBlob(PreparedStatement.java:2863) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:3688) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.JDBC42PreparedStatement.setObject(JDBC42PreparedStatement.java:99) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:3580) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.JDBC42PreparedStatement.setObject(JDBC42PreparedStatement.java:83) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) ~[na:na]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
> at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114) ~[tomcat-jdbc-8.5.16.jar:na]
> at com.sun.proxy.$Proxy145.setObject(Unknown Source) ~[na:na]
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:1001) ~[translator-jdbc-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:103) ~[translator-jdbc-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:314) ~[translator-jdbc-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:82) ~[translator-jdbc-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:398) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:360) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:216) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at com.sun.proxy.$Proxy144.execute(Unknown Source) ~[na:na]
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:302) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:138) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:390) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:141) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:148) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:111) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:65) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:66) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:80) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:88) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ProcedurePlan.executePlan(ProcedurePlan.java:611) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.CreateCursorResultSetInstruction.process(CreateCursorResultSetInstruction.java:65) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:388) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatchDirect(ProcedurePlan.java:297) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:269) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:148) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:111) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ForEachRowPlan.nextBatch(ForEachRowPlan.java:173) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:114) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:141) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:148) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:111) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:142) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:477) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:347) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:47) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:273) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:340) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:255) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:213) ~[teiid-runtime-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_65]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:264) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:211) ~[teiid-runtime-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at com.sun.proxy.$Proxy100.executeRequest(Unknown Source) ~[na:na]
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:709) ~[teiid-client-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:551) ~[teiid-client-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.jdbc.PreparedStatementImpl.executeUpdate(PreparedStatementImpl.java:319) ~[teiid-client-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3134) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:3013) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3393) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:145) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:582) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:456) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1282) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:465) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2963) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2339) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:485) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.beforeCompletion(JtaTransactionCoordinatorImpl.java:316) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.resource.transaction.backend.jta.internal.synchronization.SynchronizationCallbackCoordinatorNonTrackingImpl.beforeCompletion(SynchronizationCallbackCoordinatorNonTrackingImpl.java:47) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.resource.transaction.backend.jta.internal.synchronization.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:37) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:76) ~[jta-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:368) ~[arjuna-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:91) ~[arjuna-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:162) ~[arjuna-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1289) ~[jta-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126) ~[jta-5.5.28.Final.jar:5.5.28.Final]
> at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1023) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673) ~[spring-aop-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.ticketmonster.orders.booking.BookingServiceController$$EnhancerBySpringCGLIB$$2b738319.createBooking(<generated>) ~[classes/:na]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
> at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55) ~[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110) ~[spring-boot-actuator-1.5.6.RELEASE.jar:1.5.6.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106) ~[spring-boot-actuator-1.5.6.RELEASE.jar:1.5.6.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_65]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_65]
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months
[JBoss JIRA] (TEIID-5069) Blob getBytes() handling of input streams reads the stream multiple times without a reset
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5069?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-5069:
----------------------------------
Component/s: JDBC Driver
Query Engine
(was: Common)
> Blob getBytes() handling of input streams reads the stream multiple times without a reset
> -----------------------------------------------------------------------------------------
>
> Key: TEIID-5069
> URL: https://issues.jboss.org/browse/TEIID-5069
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Driver, Query Engine
> Affects Versions: 10.0
> Reporter: christian posta
> Assignee: Steven Hawkins
>
> When using mysql + hibernate + teiid-spring-boot I've noticed some issues handling Blob; i.e., the BlobImpl tries to determine the input streams' length by calling read() n number of times but then the stream is completely consumed and when later we try to getBytes() it cannot actually write out anything (in ObjectConverterUtil).
> We end up with a stack trace like this:
> {code}
> java.lang.ArrayIndexOutOfBoundsException: 0
> at com.mysql.jdbc.PreparedStatement.escapeblockFast(PreparedStatement.java:1073) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.PreparedStatement.setBlob(PreparedStatement.java:2863) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:3688) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.JDBC42PreparedStatement.setObject(JDBC42PreparedStatement.java:99) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:3580) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at com.mysql.jdbc.JDBC42PreparedStatement.setObject(JDBC42PreparedStatement.java:83) ~[mysql-connector-java-5.1.44.jar:5.1.44]
> at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) ~[na:na]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
> at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114) ~[tomcat-jdbc-8.5.16.jar:na]
> at com.sun.proxy.$Proxy145.setObject(Unknown Source) ~[na:na]
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:1001) ~[translator-jdbc-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:103) ~[translator-jdbc-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:314) ~[translator-jdbc-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:82) ~[translator-jdbc-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:398) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:360) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:216) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at com.sun.proxy.$Proxy144.execute(Unknown Source) ~[na:na]
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:302) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:138) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:390) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:141) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:148) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:111) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:65) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:66) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:80) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:88) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ProcedurePlan.executePlan(ProcedurePlan.java:611) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.CreateCursorResultSetInstruction.process(CreateCursorResultSetInstruction.java:65) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:388) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatchDirect(ProcedurePlan.java:297) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:269) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:148) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:111) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.proc.ForEachRowPlan.nextBatch(ForEachRowPlan.java:173) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:114) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:141) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:148) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:111) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:142) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:477) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:347) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:47) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:273) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:340) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:255) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:213) ~[teiid-runtime-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_65]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:264) ~[teiid-engine-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:211) ~[teiid-runtime-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at com.sun.proxy.$Proxy100.executeRequest(Unknown Source) ~[na:na]
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:709) ~[teiid-client-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:551) ~[teiid-client-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.teiid.jdbc.PreparedStatementImpl.executeUpdate(PreparedStatementImpl.java:319) ~[teiid-client-10.0.0.Beta3-SNAPSHOT.jar:10.0.0.Beta3-SNAPSHOT]
> at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3134) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:3013) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3393) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:145) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:582) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:456) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1282) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:465) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2963) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2339) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:485) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.beforeCompletion(JtaTransactionCoordinatorImpl.java:316) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.resource.transaction.backend.jta.internal.synchronization.SynchronizationCallbackCoordinatorNonTrackingImpl.beforeCompletion(SynchronizationCallbackCoordinatorNonTrackingImpl.java:47) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at org.hibernate.resource.transaction.backend.jta.internal.synchronization.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:37) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
> at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:76) ~[jta-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:368) ~[arjuna-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:91) ~[arjuna-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:162) ~[arjuna-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1289) ~[jta-5.5.28.Final.jar:5.5.28.Final]
> at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126) ~[jta-5.5.28.Final.jar:5.5.28.Final]
> at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1023) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673) ~[spring-aop-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.ticketmonster.orders.booking.BookingServiceController$$EnhancerBySpringCGLIB$$2b738319.createBooking(<generated>) ~[classes/:na]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
> at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55) ~[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110) ~[spring-boot-actuator-1.5.6.RELEASE.jar:1.5.6.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106) ~[spring-boot-actuator-1.5.6.RELEASE.jar:1.5.6.RELEASE]
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_65]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_65]
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.16.jar:8.5.16]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months
[JBoss JIRA] (TEIID-5068) Couchbase retrieval causes ClassCastException
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5068?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-5068.
-----------------------------------
Resolution: Done
The translator will no longer use toatom for the object cast, and the retrieval is updated to use just a get not a getObject.
It's not done by the metadata processor, but it looks like Kylin wanted to allow the direct retrieval of json values as clob. We can leave that as an undocumented feature for now.
> 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@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@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@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@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@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@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@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@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@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@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@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@teiid-security vdbName=couchbase vdbVersion=1 finalRowCount=0
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months
[JBoss JIRA] (TEIID-5070) SYSADMIN.loadMatView have risk in xa datasource
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5070?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-5070.
-----------------------------------
Resolution: Duplicate Issue
Marking as a duplicate of TEIID-4579. Essentially this was just documented as a limitation. It doesn't have a built-in workaround until TEIID-4641.
> SYSADMIN.loadMatView have risk in xa datasource
> -----------------------------------------------
>
> Key: TEIID-5070
> URL: https://issues.jboss.org/browse/TEIID-5070
> Project: Teiid
> Issue Type: Quality Risk
> Components: Query Engine
> Affects Versions: 8.12.10.6_3
> Environment: * JDV 6.3 - teiid-engine-8.12.5.redhat-8.jar
> Reporter: Kylin Soong
> Assignee: Steven Hawkins
>
> The main logic of *SYSADMIN.loadMatView* is insert data to stage table, then rename the stage table to mat table. However, this logic has risk in XA Transaction, If an XA transaction is in the ACTIVE state, you cannot issue any statements that cause an implicit commit, The RENAME TABLE statement will cause an implicit commit, so if MATVIEW_
> AFTER_LOAD_SCRIPT has these kinds of SQL will cause an error.
> Below is the error I have hit in a test with Customer's Data, the Mat View come from 7 Oracle databases, the mat table use mysql, the error looks
> {code}
> TEIID11008:TEIID11004 Error executing statement(s): RENAME TABLE CD_WELL TO CD_WELL_TEMP
> at org.teiid.translator.jdbc.JDBCDirectQueryExecution.execute(JDBCDirectQueryExecution.java:95) [translator-jdbc-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:364)
> at sun.reflect.GeneratedMethodAccessor162.invoke(Unknown Source) [:1.8.0_102]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_102]
> at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_102]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy81.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:306)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:142)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:391)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:150)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:145)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114)
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:69)
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:70)
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:84)
> at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:92)
> at org.teiid.query.processor.proc.ProcedurePlan.executePlan(ProcedurePlan.java:608)
> at org.teiid.query.processor.proc.CreateCursorResultSetInstruction.process(CreateCursorResultSetInstruction.java:69)
> at org.teiid.query.processor.proc.ExecDynamicSqlInstruction$1.process(ExecDynamicSqlInstruction.java:218)
> at org.teiid.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:389)
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatchDirect(ProcedurePlan.java:298)
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:270)
> at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:118)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:150)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:145)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:146)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:472)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:348)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:274)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> 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_102]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_102]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_102]
> Caused by: java.sql.SQLException: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2531)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2489)
> at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:848)
> at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:742)
> at com.mysql.jdbc.jdbc2.optional.StatementWrapper.execute(StatementWrapper.java:629)
> at org.jboss.jca.adapters.jdbc.WrappedStatement.execute(WrappedStatement.java:157)
> at org.teiid.translator.jdbc.JDBCDirectQueryExecution.execute(JDBCDirectQueryExecution.java:83) [translator-jdbc-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> ... 44 more
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months
[JBoss JIRA] (TEIID-5068) Couchbase retrieval causes ClassCastException
by Jan Stastny (JIRA)
[ https://issues.jboss.org/browse/TEIID-5068?page=com.atlassian.jira.plugin... ]
Jan Stastny commented on TEIID-5068:
------------------------------------
I will use the comments here as a more general discussion about data type support for couchbase, I will create separate JIRAs when needed.
# Every data type that is not covered in (1) results in similar exception (Here is error for where I tried char data type):
{code}
Error: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 couchbase_small: java.lang.String cannot be cast to com.couchbase.client.java.document.json.JsonObject
{code}
# Another issue is with object data type as Teiid knows it. Is there a way to obtain binary values from Couchbase? cause in (1) we're saying, that Teiid's object maps to couchbase JsonObject.
(1) [CouchbaseQueryExecution.java#L99|https://github.com/teiid/teiid/blob/0653...]
> 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@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@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@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@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@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@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@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@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@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@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@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@teiid-security vdbName=couchbase vdbVersion=1 finalRowCount=0
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months
[JBoss JIRA] (TEIID-5068) Couchbase retrieval causes ClassCastException
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5068?page=com.atlassian.jira.plugin... ]
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@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@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@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@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@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@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@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@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@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@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@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@teiid-security vdbName=couchbase vdbVersion=1 finalRowCount=0
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months
[JBoss JIRA] (TEIID-5068) Couchbase cast to biginteger causes ClassCastException
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5068?page=com.atlassian.jira.plugin... ]
Steven Hawkins reopened TEIID-5068:
-----------------------------------
Actually I'll just work it under this issue.
> Couchbase cast to biginteger 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@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@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@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@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@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@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@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@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@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@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@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@teiid-security vdbName=couchbase vdbVersion=1 finalRowCount=0
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 6 months