[teiid-issues] [JBoss JIRA] (TEIID-2851) ODATA POST fails if table column is of IDENTITY type (sql server)

Ramesh Reddy (JIRA) issues at jboss.org
Thu Feb 13 18:17:28 EST 2014


     [ https://issues.jboss.org/browse/TEIID-2851?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ramesh Reddy resolved TEIID-2851.
---------------------------------

           Labels: Alpha3  (was: )
    Fix Version/s: 8.7
       Resolution: Done


Captured the generated keys from the source command to the Teiid query engine and used them to retrieve the newly inserted entity. 

Note that this will only work with target source that is used in the Teiid as data source also supports Generated Keys. If Teiid, does not come back with generated keys, the insert is committed, but the result entity is not returned. In those cases, make sure you supply or use some other kind of identity generation.
                
> ODATA POST fails if table column is of IDENTITY type (sql server)
> -----------------------------------------------------------------
>
>                 Key: TEIID-2851
>                 URL: https://issues.jboss.org/browse/TEIID-2851
>             Project: Teiid
>          Issue Type: Bug
>          Components: OData
>    Affects Versions: 8.6
>            Reporter: Alex Khvatov
>            Assignee: Ramesh Reddy
>              Labels: Alpha3
>             Fix For: 8.7
>
>
> While INSERT into virtual table created from a table that has IDENTITY (autoincrement) feild (in sql server) works if inserted via JDBC, POST to the same table using ODATA fails. 
> I am attaching the stack trace we get.
> {code}
> 09:49:24,010 ERROR [org.teiid.ODATA] (http-localhost/127.0.0.1:8080-5) null TEIID16013 Error occured producing OData result.: java.lang.RuntimeException: No elements match the predicate
>             at org.core4j.Enumerable.first(Enumerable.java:125) [core4j-0.5.jar:]
>             at org.odata4j.core.OEntities$OEntityImpl.getProperty(OEntities.java:219) [odata4j-core-0.8.0-SNAPSHOT-redhat.jar:]
>             at org.teiid.odata.ODataSQLBuilder.buildEntityKey(ODataSQLBuilder.java:1005) [classes:]
>             at org.teiid.odata.TeiidProducer.createEntity(TeiidProducer.java:172) [classes:]
>             at org.odata4j.producer.resources.EntitiesRequestResource.createEntity(EntitiesRequestResource.java:124) [odata4j-core-0.8.0-SNAPSHOT-redhat.jar:]
>             at org.odata4j.producer.resources.EntitiesRequestResource.createEntity(EntitiesRequestResource.java:111) [odata4j-core-0.8.0-SNAPSHOT-redhat.jar:]
>             at sun.reflect.GeneratedMethodAccessor150.invoke(Unknown Source) [:1.7.0_17]
>             at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.7.0_17]
>             at java.lang.reflect.Method.invoke(Unknown Source) [rt.jar:1.7.0_17]
>             at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
>             at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
>             at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
>             at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
>             at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
>             at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
>             at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
>             at org.teiid.odata.ODataServletContainerDispatcher.service(ODataServletContainerDispatcher.java:97) [classes:]
>             at org.teiid.odata.ODataServlet.service(ODataServlet.java:61) [classes:]
>             at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
>             at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
>             at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
>             at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>             at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_17]
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the teiid-issues mailing list