[
https://issues.jboss.org/browse/TEIID-2851?page=com.atlassian.jira.plugin...
]
Alex Khvatov commented on TEIID-2851:
-------------------------------------
Hi Ramesh,
here is test case:
1. Started out on SQL SERVER 2008
{noformat}
CREATE TABLE [dbo].[Z1_MOB_SPEECH_LOG_D](
[SPEECH_LOG_SURRO_ID] [int] IDENTITY(1,1) NOT NULL,
[SPEECH_TS] [datetime] NULL,
[SPEECH_TYP_DESC] [varchar](100) NULL,
[ACTL_SPEECH_TXT] [varchar](2000) NULL,
[CLEAN_SPEECH_TXT] [varchar](2000) NULL,
[ONE_CLIENT_ID] [int] NULL,
[IMS_PORTAL_USR_ID] [varchar](20) NULL,
[ROW_CRE_TS] [datetime] NOT NULL,
[ROW_CRE_LOGIN_ID] [varchar](30) NOT NULL,
CONSTRAINT [Z1_XPKMOB_SPEECH_LOG_D] PRIMARY KEY CLUSTERED
(
[SPEECH_LOG_SURRO_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
{noformat}
2. In TEIID, "Create JDBC Data Connection"
created a JDBC connection using "Microsoft SQL Server 2008 JDBC Driver"
3. In TEIID, "Create Source Model for JDBC Data Connection"
created a source model using wizard to import table design to the source model
4. In TEIID, New "TEIID Metadata Model"
created a view model using wizard to create a base table off the source model table
added a primary key on column SPEECH_LOG_SURRO_ID
5. In TEIID, New "TEIID VDB"
created new TEIID VDB, adding the source model and view model above
deployed VDB to localhost running TEIID/JBOSS EAP
6. Using a REST-Client (SOAP UI)
issued an HTTP POST:
http://localhost:8080/odata/vdbTest/vw_test_log.Z3_MOB_SPEECH_LOG_D_I
...using this data row:
{noformat}
{"SPEECH_TS": "2014-02-10T15:00:33.001","SPEECH_TYP_DESC":
"type","ACTL_SPEECH_TXT":
"desc","CLEAN_SPEECH_TXT":
"clean","ONE_CLIENT_ID": "1","IMS_PORTAL_USR_ID":
"(97854)(1)","ROW_CRE_TS":
"2014-02-10T15:00:33.002","ROW_CRE_LOGIN_ID": "cw"}
{noformat}
ERROR:
{noformat}
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
{noformat}
****PLEASE NOTE: I can successfully add data through a straight JDBC Connection using
this VDB (Insert into...).
Only in an ODATA Call does it fail.
Also note, if I remove the IDENTITY clause in the SQL Server table, and issue an actual
value for the primary key in the data string, the ODATA call works fine.
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
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.
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]
--
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