]
Ramesh Reddy updated TEIID-5118:
--------------------------------
Fix Version/s: 10.0
Osisoft Translator - NPE when using ORDER BY
--------------------------------------------
Key: TEIID-5118
URL:
https://issues.jboss.org/browse/TEIID-5118
Project: Teiid
Issue Type: Bug
Components: JDBC Connector
Affects Versions: 8.12.x-6.4
Reporter: Andrej Šmigala
Assignee: Ramesh Reddy
Priority: Critical
Fix For: 10.0
Attachments: osisoft-pi-vdb.xml
Any query with an ORDER BY clause run against Osisoft PI datasource fails with a
NullPointerException
Stack trace:
{noformat}
10:17:09,235 ERROR [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue17) Connector worker
process failed for atomic-request=mcBkcBzOiieD.5.0.5: java.lang.NullPointerException
at
org.teiid.translator.jdbc.pi.PISQLConversionVisitor.visit(PISQLConversionVisitor.java:157)
[translator-jdbc-8.12.11.6_4.jar:8.12.11.6_4]
at org.teiid.language.ColumnReference.acceptVisitor(ColumnReference.java:72)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at
org.teiid.language.visitor.AbstractLanguageVisitor.visitNode(AbstractLanguageVisitor.java:51)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at org.teiid.language.visitor.SQLStringVisitor.append(SQLStringVisitor.java:91)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at
org.teiid.translator.jdbc.SQLConversionVisitor.append(SQLConversionVisitor.java:130)
[translator-jdbc-8.12.11.6_4.jar:8.12.11.6_4]
at org.teiid.language.visitor.SQLStringVisitor.visit(SQLStringVisitor.java:737)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at org.teiid.language.SortSpecification.acceptVisitor(SortSpecification.java:53)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at
org.teiid.language.visitor.AbstractLanguageVisitor.visitNode(AbstractLanguageVisitor.java:51)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at org.teiid.language.visitor.SQLStringVisitor.append(SQLStringVisitor.java:91)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at
org.teiid.translator.jdbc.SQLConversionVisitor.append(SQLConversionVisitor.java:130)
[translator-jdbc-8.12.11.6_4.jar:8.12.11.6_4]
at org.teiid.language.visitor.SQLStringVisitor.append(SQLStringVisitor.java:102)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at org.teiid.language.visitor.SQLStringVisitor.visit(SQLStringVisitor.java:733)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at org.teiid.language.OrderBy.acceptVisitor(OrderBy.java:45)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at
org.teiid.language.visitor.AbstractLanguageVisitor.visitNode(AbstractLanguageVisitor.java:51)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at org.teiid.language.visitor.SQLStringVisitor.append(SQLStringVisitor.java:91)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at
org.teiid.translator.jdbc.SQLConversionVisitor.append(SQLConversionVisitor.java:130)
[translator-jdbc-8.12.11.6_4.jar:8.12.11.6_4]
at org.teiid.language.visitor.SQLStringVisitor.visit(SQLStringVisitor.java:790)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at org.teiid.language.Select.acceptVisitor(Select.java:110)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at
org.teiid.language.visitor.AbstractLanguageVisitor.visitNode(AbstractLanguageVisitor.java:51)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at org.teiid.language.visitor.SQLStringVisitor.append(SQLStringVisitor.java:91)
[teiid-api-8.12.11.6_4-redhat-64-6.jar:8.12.11.6_4-redhat-64-6]
at
org.teiid.translator.jdbc.SQLConversionVisitor.append(SQLConversionVisitor.java:130)
[translator-jdbc-8.12.11.6_4.jar:8.12.11.6_4]
at
org.teiid.translator.jdbc.TranslatedCommand.translateCommand(TranslatedCommand.java:76)
[translator-jdbc-8.12.11.6_4.jar:8.12.11.6_4]
at
org.teiid.translator.jdbc.JDBCBaseExecution.translateCommand(JDBCBaseExecution.java:120)
[translator-jdbc-8.12.11.6_4.jar:8.12.11.6_4]
at
org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:114)
[translator-jdbc-8.12.11.6_4.jar:8.12.11.6_4]
at
org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:363)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[rt.jar:1.8.0_141]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[rt.jar:1.8.0_141]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.8.0_141]
at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_141]
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$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_141]
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:1149)
[rt.jar:1.8.0_141]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[rt.jar:1.8.0_141]
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_141]
{noformat}
I tried remote debugging the server process and it appears that when running query such
as
{code:sql}
SELECT FloatNum FROM BQT1.SmallA ORDER BY FloatNum ASC
{code}
the PISQLConversionVisitor.visit(ColumnReference obj) is called twice, the first time the
ColumnReference object has value "g_0.FloatNum" and all fields set, the second
time the object has only name set to "c_2" and nothing else (table, metadata
object etc).