[teiid-issues] [JBoss JIRA] (TEIID-5203) Google Spreadsheet translator NPE thrown on UPDATE
Jan Stastny (JIRA)
issues at jboss.org
Mon Jan 8 02:34:00 EST 2018
[ https://issues.jboss.org/browse/TEIID-5203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13510225#comment-13510225 ]
Jan Stastny commented on TEIID-5203:
------------------------------------
[~shawkins] I didn't try on master.
I tried on 8.12.x-6.4 with the steps from TEIID-4870 and still see the exception.
I use vdb:
{code}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vdb name="googlespreadsheetcrud" version="1">
<description>Google Spreadsheet for CRUD operations</description>
<model name="Source" type="PHYSICAL" visible="false">
<source name="Source" translator-name="google-spreadsheet" connection-jndi-name="java:/googlespreadsheet-crud" />
<metadata type="DDL">
<![CDATA[
CREATE FOREIGN TABLE smalla(
doublenum double OPTIONS (NATIVE_TYPE 'NUMBER'),
booleanvalue boolean OPTIONS (NATIVE_TYPE 'BOOLEAN'),
intnum integer OPTIONS (NATIVE_TYPE 'NUMBER'),
longnum long OPTIONS (NATIVE_TYPE 'NUMBER'),
floatnum float OPTIONS (NATIVE_TYPE 'NUMBER'),
bytenum byte OPTIONS (NATIVE_TYPE 'NUMBER'),
stringkey string(10) OPTIONS (NATIVE_TYPE 'STRING'),
objectvalue object OPTIONS (NATIVE_TYPE 'STRING'),
stringnum string(10) OPTIONS (NATIVE_TYPE 'STRING'),
bigintegervalue biginteger OPTIONS (NATIVE_TYPE 'NUMBER'),
datevalue date OPTIONS (NATIVE_TYPE 'DATE'),
charvalue string OPTIONS (NATIVE_TYPE 'STRING'),
timevalue time OPTIONS (NATIVE_TYPE 'TIMEOFDAY'),
bigdecimalvalue bigdecimal OPTIONS (NATIVE_TYPE 'NUMBER'),
timestampvalue timestamp OPTIONS (NATIVE_TYPE 'DATETIME'),
intkey integer OPTIONS (NATIVE_TYPE 'NUMBER'),
shortvalue short OPTIONS (NATIVE_TYPE 'NUMBER')
) OPTIONS (UPDATABLE 'TRUE', NAMEINSOURCE 'smalla_${label}');
CREATE FOREIGN TABLE ag (id integer PRIMARY KEY, name string) OPTIONS (UPDATABLE 'TRUE');
]]>
</metadata>
</model>
<model name="CRUD" type="VIRTUAL">
<metadata type="DDL">
<![CDATA[
CREATE VIEW SmallA_Direct (IntKey integer PRIMARY KEY,
StringKey string,
IntNum integer,
StringNum string)
OPTIONS (UPDATABLE 'TRUE')
AS
SELECT
intkey, stringkey, intnum, stringnum
FROM
Source.smalla;
]]>
</metadata>
</model>
</vdb>
{code}
The following steps end with the exception:
# INSERT INTO SmallA_Direct (IntKey, StringKey, IntNum, StringNum) VALUES (1, '1', 1, '1'), (2, '2', 2, '2'), (3, '3', 3, '3'), (4, '4', 4, '4'), (5, '5', 5, '5')
# UPDATE SmallA_Direct SET intnum = 1001 WHERE Intkey >= 3
The spreadsheet looks like this after the insert:
| doublenum | booleanvalue | intnum | longnum | floatnum | bytenum | stringkey | objectvalue | stringnum | bigintegervalue | datevalue | charvalue | timevalue | bigdecimalvalue | timestampvalue | intkey | shortvalue |
| | | 1 | | | | 1 | | 1 | | | | | | | 1 | |
| | | 2 | | | | 2 | | 2 | | | | | | | 2 | |
| | | 3 | | | | 3 | | 3 | | | | | | | 3 | |
| | | 4 | | | | 4 | | 4 | | | | | | | 4 | |
| | | 5 | | | | 5 | | 5 | | | | | | | 5 | |
> Google Spreadsheet translator NPE thrown on UPDATE
> --------------------------------------------------
>
> Key: TEIID-5203
> URL: https://issues.jboss.org/browse/TEIID-5203
> Project: Teiid
> Issue Type: Bug
> Components: Misc. Connectors
> Affects Versions: 8.12.x-6.4
> Reporter: Jan Stastny
> Assignee: Steven Hawkins
> Priority: Blocker
>
> There is a NPE thrown with UPDATE when there is a matching row (either no criteria or criteria matching at least one row).
> {code:sql}
> UPDATE SmallA SET IntNum=2
> {code}
> {code}
> 15:50:17,006 ERROR [org.teiid.CONNECTOR] (Worker8_QueryProcessorQueue71) Connector worker process failed for atomic-request=llOgHAYB6Yd3.31.2.96: java.lang.NullPointerException
> at com.google.gdata.data.spreadsheet.CustomElementCollection.getValue(CustomElementCollection.java:106) [gdata-spreadsheet-3.0.jar:]
> at org.teiid.resource.adapter.google.gdata.GDataClientLoginAPI.listFeedUpdate(GDataClientLoginAPI.java:175) [google-api-8.12.11.6_4-redhat-64-10.jar:8.12.11.6_4-redhat-64-10]
> at org.teiid.resource.adapter.google.SpreadsheetConnectionImpl.executeListFeedUpdate(SpreadsheetConnectionImpl.java:114)
> at org.teiid.translator.google.SpreadsheetUpdateExecution.executeUpdate(SpreadsheetUpdateExecution.java:76) [translator-google-8.12.11.6_4-redhat-64-10.jar:8.12.11.6_4-redhat-64-10]
> at org.teiid.translator.google.SpreadsheetUpdateExecution.execute(SpreadsheetUpdateExecution.java:67) [translator-google-8.12.11.6_4-redhat-64-10.jar:8.12.11.6_4-redhat-64-10]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:399)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:361)
> at sun.reflect.GeneratedMethodAccessor209.invoke(Unknown Source) [:1.8.0_151]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_151]
> at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_151]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy79.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:281)
> 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:616)
> at org.teiid.query.processor.proc.CreateCursorResultSetInstruction.process(CreateCursorResultSetInstruction.java:69)
> 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.QueryProcessor.nextBatchDirect(QueryProcessor.java:151)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114)
> at org.teiid.query.processor.proc.ForEachRowPlan.nextBatch(ForEachRowPlan.java:147)
> at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:118)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:150)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:281)
> 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:284)
> 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:1149) [rt.jar:1.8.0_151]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_151]
> at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_151]
> 15:50:17,011 WARN [org.teiid.PROCESSOR] (Worker8_QueryProcessorQueue71) TEIID30020 Processing exception for request llOgHAYB6Yd3.31 'TEIID30504 Source: null'. Originally TeiidProcessingException CustomElementCollection.java:106. Enable more detailed logging to see the entire stacktrace.
> {code}
> COMMAND LOG:
> {code}
> 15:53:50,025 INFO [org.teiid.COMMAND_LOG] (New I/O worker #1) llOgHAYB6Yd3 START USER COMMAND: startTime=2018-01-05 15:53:50.025 requestID=llOgHAYB6Yd3.33 txID=null sessionID=llOgHAYB6Yd3 applicationName=JDBC principal=user at teiid-security vdbName=googlespreadsheetcrud vdbVersion=1 sql=UPDATE SmallA SET IntNum=2
> 15:53:50,033 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue76) llOgHAYB6Yd3 START DATA SRC COMMAND: startTime=2018-01-05 15:53:50.033 requestID=llOgHAYB6Yd3.33 sourceCommandID=1 executionID=98 txID=TransactionImple < ac, BasicAction: 0:ffff7f000001:63850a7c:5a4f89f7:80 status: ActionStatus.RUNNING > modelName=Source translatorName=google-spreadsheet sessionID=llOgHAYB6Yd3 principal=user at teiid-security sql=SELECT Source.smalla.intkey, Source.smalla.stringkey, Source.smalla.intnum, Source.smalla.stringnum, Source.smalla.floatnum, Source.smalla.longnum, Source.smalla.doublenum, Source.smalla.bytenum, Source.smalla.datevalue, Source.smalla.timevalue, Source.smalla.timestampvalue, Source.smalla.booleanvalue, Source.smalla.charvalue, Source.smalla.shortvalue, Source.smalla.bigintegervalue, Source.smalla.bigdecimalvalue, Source.smalla.objectvalue FROM Source.smalla
> 15:53:51,128 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue76) llOgHAYB6Yd3 END SRC COMMAND: endTime=2018-01-05 15:53:51.128 requestID=llOgHAYB6Yd3.33 sourceCommandID=1 executionID=98 txID=TransactionImple < ac, BasicAction: 0:ffff7f000001:63850a7c:5a4f89f7:80 status: ActionStatus.RUNNING > modelName=Source translatorName=google-spreadsheet sessionID=llOgHAYB6Yd3 principal=user at teiid-security finalRowCount=30 cpuTime(ns)=37690048
> 15:53:51,129 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue76) llOgHAYB6Yd3 START DATA SRC COMMAND: startTime=2018-01-05 15:53:51.129 requestID=llOgHAYB6Yd3.33 sourceCommandID=2 executionID=99 txID=TransactionImple < ac, BasicAction: 0:ffff7f000001:63850a7c:5a4f89f7:80 status: ActionStatus.RUNNING > modelName=Source translatorName=google-spreadsheet sessionID=llOgHAYB6Yd3 principal=user at teiid-security sql=UPDATE Source.smalla SET intkey = 2, stringkey = '2', intnum = 2, stringnum = '812376', floatnum = -27810.0, longnum = 9, doublenum = -1349305.33, bytenum = -121, datevalue = {d'2012-01-26'}, timevalue = null, timestampvalue = null, booleanvalue = FALSE, charvalue = '5', shortvalue = 13825, bigintegervalue = 27147783, bigdecimalvalue = 1703662.0300000, objectvalue = '-106.0' WHERE intkey = 2
> 15:53:51,740 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue76) llOgHAYB6Yd3 ERROR SRC COMMAND: endTime=2018-01-05 15:53:51.74 requestID=llOgHAYB6Yd3.33 sourceCommandID=2 executionID=99 txID=TransactionImple < ac, BasicAction: 0:ffff7f000001:63850a7c:5a4f89f7:80 status: ActionStatus.RUNNING > modelName=Source translatorName=google-spreadsheet sessionID=llOgHAYB6Yd3 principal=user at teiid-security
> 15:53:51,746 DEBUG [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue76) llOgHAYB6Yd3 END SRC COMMAND: endTime=2018-01-05 15:53:51.746 requestID=llOgHAYB6Yd3.33 sourceCommandID=2 executionID=99 txID=TransactionImple < ac, BasicAction: 0:ffff7f000001:63850a7c:5a4f89f7:80 status: ActionStatus.RUNNING > modelName=Source translatorName=google-spreadsheet sessionID=llOgHAYB6Yd3 principal=user at teiid-security finalRowCount=0 cpuTime(ns)=13526883
> 15:53:51,746 INFO [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue76) llOgHAYB6Yd3 ERROR USER COMMAND: endTime=2018-01-05 15:53:51.746 requestID=llOgHAYB6Yd3.33 txID=TransactionImple < ac, BasicAction: 0:ffff7f000001:63850a7c:5a4f89f7:80 status: ActionStatus.RUNNING > sessionID=llOgHAYB6Yd3 principal=user at teiid-security vdbName=googlespreadsheetcrud vdbVersion=1 finalRowCount=null
> 15:53:51,747 INFO [org.teiid.COMMAND_LOG] (Worker9_QueryProcessorQueue76) llOgHAYB6Yd3 END USER COMMAND: endTime=2018-01-05 15:53:51.747 requestID=llOgHAYB6Yd3.33 txID=null sessionID=llOgHAYB6Yd3 principal=user at teiid-security vdbName=googlespreadsheetcrud vdbVersion=1 finalRowCount=0
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the teiid-issues
mailing list