[teiid-issues] [JBoss JIRA] (TEIID-4220) Unsupported encoding when POSTing to odata on Windows

Steven Hawkins (JIRA) issues at jboss.org
Tue May 31 12:40:00 EDT 2016


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

Steven Hawkins commented on TEIID-4220:
---------------------------------------

>From what I can glean an exception is expected or at least allowed behavior.  Since cp1252 is not a standard charset name http://www.iana.org/assignments/character-sets/character-sets.xhtml - it is not required for the parser to recognize it.  Woodstox attempts to change it into an IBM name, Xerces requires a feature setting https://xerces.apache.org/xerces2-j/features.html to allow Java charset names to be used, and fasterxml allows Java charset names by default.  So the behavior will vary depending upon which library is used.

So this is mostly a client issue in the olingo serialization logic that is taking the Java system encoding from the OutputStreamWriter and using it directly in the output document.  Ideally it should ensure that a standard charset name is being used.

> Unsupported encoding when POSTing to odata on Windows
> -----------------------------------------------------
>
>                 Key: TEIID-4220
>                 URL: https://issues.jboss.org/browse/TEIID-4220
>             Project: Teiid
>          Issue Type: Bug
>          Components: OData
>    Affects Versions: 8.12.x
>            Reporter: Andrej Šmigala
>            Assignee: Steven Hawkins
>            Priority: Critical
>
> When posting to a windows server from a windows client, the default encoding is cp1252. When an xml request such as this is posted:
> {code:xml}
> <?xml version='1.0' encoding='cp1252'?><entry xmlns="http://www.w3.org/2005/Atom" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:gml="http://www.opengis.net/gml" xmlns:georss="http://www.georss.org/georss"><category scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
>     <content type="application/xml">
>         <m:properties>
>             <d:intkey m:type="Int32">4</d:intkey>
>             <d:intnum m:type="Int32">4</d:intnum>
>             <d:stringkey>4</d:stringkey>
>             <d:stringval>value_4</d:stringval>
>             <d:booleanval m:type="Boolean">false</d:booleanval>
>             <d:decimalval m:type="Double">-20.4</d:decimalval>
>             <d:timeval m:type="TimeOfDay">00:00:04</d:timeval>
>             <d:dateval m:type="Date">2004-04-04</d:dateval>
>             <d:timestampval m:type="DateTimeOffset">2004-01-01T00:00:04Z</d:timestampval>
>         </m:properties>
>     </content>
> </entry>
> {code}
> the following error is logged in the server:
> {noformat}
> 09:54:38,069 WARN  [org.teiid.ODATA] (http-/0.0.0.0:8080-1) TEIID16050 Unable to process odata request due to: An I/O exception occurred. with cause Unsupported encoding: IBM1252: Unsupported encoding: IBM1252
> 	at org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.entity(ODataXmlDeserializer.java:592)
> 	at org.apache.olingo.server.core.requests.DataRequest$EntityRequest.getEntityFromClient(DataRequest.java:367)
> 	at org.apache.olingo.server.core.requests.DataRequest$EntityRequest.execute(DataRequest.java:359)
> 	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-4.jar:8.12.5.redhat-4]
> 	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-4.jar:8.12.5.redhat-4]
> 	at org.teiid.olingo.web.ODataFilter.doFilter(ODataFilter.java:100) [teiid-olingo-8.12.5.redhat-4.jar:8.12.5.redhat-4]
> 	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(Unknown Source) [rt.jar:1.7.0_79]
> Caused by: com.ctc.wstx.exc.WstxIOException: Unsupported encoding: IBM1252
> 	at com.ctc.wstx.io.StreamBootstrapper.bootstrapInput(StreamBootstrapper.java:247)
> 	at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:546)
> 	at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:600)
> 	at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:615)
> 	at com.ctc.wstx.stax.WstxInputFactory.createXMLEventReader(WstxInputFactory.java:269)
> 	at __redirected.__XMLInputFactory.createXMLEventReader(__XMLInputFactory.java:170) [jboss-modules.jar:1.3.7.Final-redhat-1]
> 	at org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.getReader(ODataXmlDeserializer.java:97)
> 	at org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer.entity(ODataXmlDeserializer.java:583)
> 	... 26 more
> {noformat}



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



More information about the teiid-issues mailing list