[
https://issues.jboss.org/browse/TEIID-5203?page=com.atlassian.jira.plugin...
]
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@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@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@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@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@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@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@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@teiid-security vdbName=googlespreadsheetcrud vdbVersion=1 finalRowCount=0
{code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)