[teiid-issues] [JBoss JIRA] (TEIID-4064) OData - missing non-nullable property

Juraj Duráni (JIRA) issues at jboss.org
Thu Apr 21 02:36:00 EDT 2016


    [ https://issues.jboss.org/browse/TEIID-4064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13194922#comment-13194922 ] 

Juraj Duráni commented on TEIID-4064:
-------------------------------------

This has not been fixed. Now, Teiid returns "OData Library: An exception without message text was thrown."
URL: http://localhost:8080/odata4/olingo_basic/Source/Customers?$count=true&$expand=Orders_FK0

Server side: Exception:
{code:text}
08:32:30,136 ERROR [org.teiid.ODATA] (http-/127.0.0.1:8080-1) TEIID16052 Unable to process odata request due to: OData Library: An exception without message text was thrown.: org.apache.olingo.server.api.ODataApplicationException
	at org.teiid.olingo.service.TeiidServiceHandler.read(TeiidServiceHandler.java:174) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	at org.apache.olingo.server.core.requests.DataRequest$EntityRequest.execute(DataRequest.java:332)
	at org.apache.olingo.server.core.requests.DataRequest.execute(DataRequest.java:255)
	at org.apache.olingo.server.core.ServiceDispatcher.internalExecute(ServiceDispatcher.java:160)
	at org.apache.olingo.server.core.ServiceDispatcher.execute(ServiceDispatcher.java:98)
	at org.apache.olingo.server.core.OData4HttpHandler.process(OData4HttpHandler.java:66)
	at org.teiid.olingo.web.ODataServlet.service(ODataServlet.java:43) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.teiid.olingo.web.ODataFilter.internalDoFilter(ODataFilter.java:226) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	at org.teiid.olingo.web.ODataFilter.doFilter(ODataFilter.java:100) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:512) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0-internal]
Caused by: java.lang.NullPointerException
	at org.teiid.olingo.service.DocumentNode.joinFK(DocumentNode.java:440) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	at org.teiid.olingo.service.DocumentNode.joinTable(DocumentNode.java:398) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	at org.teiid.olingo.service.ODataSQLBuilder.processExpandOption(ODataSQLBuilder.java:206) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	at org.teiid.olingo.service.ODataSQLBuilder.selectQuery(ODataSQLBuilder.java:172) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	at org.teiid.olingo.service.TeiidServiceHandler.read(TeiidServiceHandler.java:171) [teiid-olingo-8.12.5.redhat-3.jar:8.12.5.redhat-3]
	... 25 more
{code}

> OData - missing non-nullable property
> -------------------------------------
>
>                 Key: TEIID-4064
>                 URL: https://issues.jboss.org/browse/TEIID-4064
>             Project: Teiid
>          Issue Type: Sub-task
>          Components: OData
>            Reporter: Juraj Duráni
>            Assignee: Ramesh Reddy
>              Labels: Alpha3
>             Fix For: 9.0, 8.12.5
>
>
> Change DDL for tables Customer and Orders in VDB as follows:
> {code:sql}
> CREATE FOREIGN TABLE Customers (
>   id integer PRIMARY KEY OPTIONS (NAMEINSOURCE 'id'),
>   name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.CUSTOMERS');
> CREATE FOREIGN TABLE Orders (
>   id integer PRIMARY KEY OPTIONS (NAMEINSOURCE 'id'),
>   customerid integer,
>   place varchar(10),
>   FOREIGN KEY (customerid) REFERENCES Customers(id)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.ORDERS');
> {code}
> Note, that both tables have same name of primary key named "id".
> Invoke GET method to URL http://localhost:8080/odata4/olingo_basic/Source/Customers/?$count=true&$expand=Orders_FK0
> *Result:*
> {code:xml}
> <error>
>   <code>400</code>
>   <message>The non-nullable property 'id' is missing.</message>
> </error>
> {code}
> Here are selected part of Teiid's log:
> *Query:*
> {code:sql}
> SELECT g10.id, g10.name, g11.id, g11.customerid, g11.place FROM Source.Customers AS g10 LEFT OUTER JOIN Source.Orders AS g11 ON g10.id = g11.customerid ORDER BY g10.id
> {code}
> *Result:*
> |id|name|id|customerid|place|
> |1|customer1|1|1|town|
> |1|customer1|2|1|state|
> |1|customer1|3|1|country|
> |1|customer1|4|1|abroad|
> |2|customer2|5|2|state|
> |2|customer2|6|2|country|
> |3|customer3|7|3|town|
> |3|customer3|8|3|town|
> |4|customer4|<null>|<null>|<null>|



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the teiid-issues mailing list