[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