You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Florent Albert (Jira)" <ji...@apache.org> on 2022/08/11 19:43:00 UTC

[jira] [Created] (OLINGO-1580) XML syntax unbound action with a collection of entities as parameter

Florent Albert created OLINGO-1580:
--------------------------------------

             Summary: XML syntax unbound action with a collection of entities as parameter
                 Key: OLINGO-1580
                 URL: https://issues.apache.org/jira/browse/OLINGO-1580
             Project: Olingo
          Issue Type: Question
          Components: odata4-server
    Affects Versions: (Java) V4 4.9.0
            Reporter: Florent Albert


I have an unbound action which takes a collection of entities as a parameter.

This action works fine when the request body is JSON. However, when the request body is XML, it fails with HTTP 400 "failed to read feed".

This is what my request body looks like:
{quote}{color:#808080}<?{color}{color:#569cd6}xml{color}{color:#9cdcfe} version{color}{color:#d4d4d4}={color}{color:#ce9178}'1.0'{color}{color:#9cdcfe} encoding{color}{color:#d4d4d4}={color}{color:#ce9178}'UTF-8'{color}{color:#808080}?>{color}
{color:#808080}<{color}{color:#569cd6}metadata:parameters{color}{color:#d4d4d4} {color}
{color:#d4d4d4}    {color}{color:#9cdcfe}xmlns:metadata{color}{color:#d4d4d4}={color}{color:#ce9178}"http://docs.oasis-open.org/odata/ns/metadata"{color}
{color:#d4d4d4}    {color}{color:#9cdcfe}xmlns:data{color}{color:#d4d4d4}={color}{color:#ce9178}"http://docs.oasis-open.org/odata/ns/data"{color}
{color:#d4d4d4}    {color}{color:#9cdcfe}xmlns:atom{color}{color:#d4d4d4}={color}{color:#ce9178}"http://www.w3.org/2005/Atom"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}MyCollectionParameter{color}{color:#808080}>{color}
{color:#d4d4d4}   {color}{color:#808080}<{color}{color:#569cd6}atom:feed{color}{color:#d4d4d4} {color}
{color:#d4d4d4}        {color}{color:#9cdcfe}metadata:context{color}{color:#d4d4d4}={color}{color:#ce9178}"http://<URL>/<ServiceRoot>/$metadata#MyEntitySet"{color}{color:#d4d4d4} {color}
{color:#d4d4d4}        {color}{color:#9cdcfe}xml:base{color}{color:#d4d4d4}={color}{color:#ce9178}"http://<URL>/<ServiceRoot>/"{color}{color:#808080}>{color}
{color:#d4d4d4}        {color}{color:#808080}<{color}{color:#569cd6}atom:id{color}{color:#808080}>{color}{color:#d4d4d4}http://{color}{color:#808080}<{color}{color:#569cd6}URL{color}{color:#808080}>{color}{color:#d4d4d4}/{color}{color:#808080}<{color}{color:#569cd6}ServiceRoot{color}{color:#808080}>{color}{color:#d4d4d4}/MyEntitySet{color}{color:#808080}</{color}{color:#569cd6}a:id{color}{color:#808080}>{color}
{color:#d4d4d4}        {color}{color:#808080}<{color}{color:#569cd6}atom:entry{color}{color:#d4d4d4} {color}
{color:#d4d4d4}            {color}{color:#9cdcfe}metadata:context{color}{color:#d4d4d4}={color}{color:#ce9178}"$metadata#MyEntitySet/$entity"{color}
{color:#d4d4d4}            {color}{color:#9cdcfe}xml:base{color}{color:#d4d4d4}={color}{color:#ce9178}"http://<URL>/<ServiceRoot>/"{color}{color:#808080}>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:id{color}{color:#808080}>{color}{color:#d4d4d4}http://{color}{color:#808080}<{color}{color:#569cd6}URL{color}{color:#808080}>{color}{color:#d4d4d4}/{color}{color:#808080}<{color}{color:#569cd6}ServiceRoot{color}{color:#808080}>{color}{color:#d4d4d4}/$metadata#MyEntitySet('generated-oid'){color}{color:#808080}</{color}{color:#569cd6}atom:id{color}{color:#808080}>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:link{color}{color:#d4d4d4} {color}{color:#9cdcfe}rel{color}{color:#d4d4d4}={color}{color:#ce9178}"self"{color}{color:#d4d4d4} {color}{color:#9cdcfe}title{color}{color:#d4d4d4}={color}{color:#ce9178}"EntityName"{color}{color:#d4d4d4} {color}{color:#9cdcfe}href{color}{color:#d4d4d4}={color}{color:#ce9178}"MyEntitySet('generated-oid')"{color}{color:#d4d4d4} {color}{color:#808080}/>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:link{color}{color:#d4d4d4} {color}
{color:#d4d4d4}                        {color}{color:#9cdcfe}rel{color}{color:#d4d4d4}={color}{color:#ce9178}"http://docs.oasis-open.org/odata/ns/related/NavPropBinding"{color}
{color:#d4d4d4}                        {color}{color:#9cdcfe}href{color}{color:#d4d4d4}={color}{color:#ce9178}"http://<URL>/EntitySet2(123)"{color}
{color:#d4d4d4}                        {color}{color:#9cdcfe}type{color}{color:#d4d4d4}={color}{color:#ce9178}"application/atom+xml;type=entry"{color}
{color:#d4d4d4}                        {color}{color:#9cdcfe}title{color}{color:#d4d4d4}={color}{color:#ce9178}"NavPropBinding"{color}
{color:#d4d4d4}                    {color}{color:#808080}/>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:category{color}{color:#d4d4d4} {color}{color:#9cdcfe}term{color}{color:#d4d4d4}={color}{color:#ce9178}"#FQN.EntityName"{color}
{color:#d4d4d4}                    {color}{color:#9cdcfe}scheme{color}{color:#d4d4d4}={color}{color:#ce9178}"http://docs.oasis-open.org/odata/ns/scheme"{color}{color:#d4d4d4} {color}{color:#808080}/>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:content{color}{color:#d4d4d4} {color}{color:#9cdcfe}type{color}{color:#d4d4d4}={color}{color:#ce9178}"application/xml"{color}{color:#808080}>{color}
{color:#d4d4d4}                {color}{color:#808080}<{color}{color:#569cd6}metadata:properties{color}{color:#808080}>{color}
{color:#d4d4d4}                    {color}{color:#808080}<{color}{color:#569cd6}data:Name{color}{color:#808080}>{color}{color:#d4d4d4}Item 1{color}{color:#808080}</{color}{color:#569cd6}data:Name{color}{color:#808080}>{color}{color:#d4d4d4}          {color}
{color:#d4d4d4}                {color}{color:#808080}</{color}{color:#569cd6}metadata:properties{color}{color:#808080}>{color}
{color:#d4d4d4}            {color}{color:#808080}</{color}{color:#569cd6}atom:content{color}{color:#808080}>{color}
{color:#d4d4d4}        {color}{color:#808080}</{color}{color:#569cd6}atom:entry{color}{color:#808080}>{color}
{color:#d4d4d4}        {color}{color:#808080}<{color}{color:#569cd6}atom:entry{color}{color:#d4d4d4} {color}
{color:#d4d4d4}            {color}{color:#9cdcfe}metadata:context{color}{color:#d4d4d4}={color}{color:#ce9178}"$metadata#MyEntitySet/$entity"{color}
{color:#d4d4d4}            {color}{color:#9cdcfe}xml:base{color}{color:#d4d4d4}={color}{color:#ce9178}"http://<URL>/<ServiceRoot>/"{color}{color:#808080}>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:id{color}{color:#808080}>{color}{color:#d4d4d4}http://{color}{color:#808080}<{color}{color:#569cd6}URL{color}{color:#808080}>{color}{color:#d4d4d4}/{color}{color:#808080}<{color}{color:#569cd6}ServiceRoot{color}{color:#808080}>{color}{color:#d4d4d4}/$metadata#MyEntitySet('generated-oid'){color}{color:#808080}</{color}{color:#569cd6}atom:id{color}{color:#808080}>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:link{color}{color:#d4d4d4} {color}{color:#9cdcfe}rel{color}{color:#d4d4d4}={color}{color:#ce9178}"self"{color}{color:#d4d4d4} {color}{color:#9cdcfe}title{color}{color:#d4d4d4}={color}{color:#ce9178}"EntityName"{color}{color:#d4d4d4} {color}{color:#9cdcfe}href{color}{color:#d4d4d4}={color}{color:#ce9178}"MyEntitySet('generated-oid')"{color}{color:#d4d4d4} {color}{color:#808080}/>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:link{color}{color:#d4d4d4} {color}
{color:#d4d4d4}                        {color}{color:#9cdcfe}rel{color}{color:#d4d4d4}={color}{color:#ce9178}"http://docs.oasis-open.org/odata/ns/related/NavPropBinding"{color}
{color:#d4d4d4}                        {color}{color:#9cdcfe}href{color}{color:#d4d4d4}={color}{color:#ce9178}"http://<URL>/EntitySet2(123)"{color}
{color:#d4d4d4}                        {color}{color:#9cdcfe}type{color}{color:#d4d4d4}={color}{color:#ce9178}"application/atom+xml;type=entry"{color}
{color:#d4d4d4}                        {color}{color:#9cdcfe}title{color}{color:#d4d4d4}={color}{color:#ce9178}"NavPropBinding"{color}
{color:#d4d4d4}                    {color}{color:#808080}/>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:category{color}{color:#d4d4d4} {color}{color:#9cdcfe}term{color}{color:#d4d4d4}={color}{color:#ce9178}"#FQN.EntityName"{color}
{color:#d4d4d4}                    {color}{color:#9cdcfe}scheme{color}{color:#d4d4d4}={color}{color:#ce9178}"http://docs.oasis-open.org/odata/ns/scheme"{color}{color:#d4d4d4} {color}{color:#808080}/>{color}
{color:#d4d4d4}            {color}{color:#808080}<{color}{color:#569cd6}atom:content{color}{color:#d4d4d4} {color}{color:#9cdcfe}type{color}{color:#d4d4d4}={color}{color:#ce9178}"application/xml"{color}{color:#808080}>{color}
{color:#d4d4d4}                {color}{color:#808080}<{color}{color:#569cd6}metadata:properties{color}{color:#808080}>{color}
{color:#d4d4d4}                    {color}{color:#808080}<{color}{color:#569cd6}data:Name{color}{color:#808080}>{color}{color:#d4d4d4}item 2{color}{color:#808080}</{color}{color:#569cd6}data:Name{color}{color:#808080}>{color}
{color:#d4d4d4}                {color}{color:#808080}</{color}{color:#569cd6}metadata:properties{color}{color:#808080}>{color}
{color:#d4d4d4}            {color}{color:#808080}</{color}{color:#569cd6}atom:content{color}{color:#808080}>{color}
{color:#d4d4d4}        {color}{color:#808080}</{color}{color:#569cd6}atom:entry{color}{color:#808080}>{color}
{color:#d4d4d4}  {color}{color:#808080}</{color}{color:#569cd6}atom:feed{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}MyCollectionParameter{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}metadata:parameters{color}{color:#808080}>{color}{quote}
I tried removing the <atom:feed> tag and have my entries directly under MyCollectionParameter, it didn't work either.

 

Looking at the XML Deserializer, it looks like there is a bug as it expects the parameter name to be "<atom_ns>feed" (cf. {_}org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.entitySet(XMLEventReader, StartElement, EdmEntityType){_})

Before opening a bug, I wanted to make sure I'm not making a syntax mistake.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)