[
https://issues.apache.org/jira/browse/SLING-3175?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chetan Mehrotra updated SLING-3175:
-----------------------------------
Attachment: SLING-3175.patch
Patch with testcase which makes the parser lenient against such headers
> Make MediaRange parser linient to accept invalid Accept header generated by
> Oracle JDK HttpUrlConnection
> --------------------------------------------------------------------------------------------------------
>
> Key: SLING-3175
> URL: https://issues.apache.org/jira/browse/SLING-3175
> Project: Sling
> Issue Type: Improvement
> Components: Servlets
> Affects Versions: Servlets Post 2.3.2
> Reporter: Chetan Mehrotra
> Priority: Minor
> Attachments: SLING-3175.patch
>
>
> While making a call to Sling using Java URLConnection we get following
> exception [1]. The root cause is due to parsing of invalid {{Accept}} header
> being sent as part of request
> {noformat}
> Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
> {noformat}
> The problem here is that this header is added by JDK itself [0] and at times
> its not possible to change the request property of URLConnection created by
> third party library. Would be helpful to make Sling MediaRange parser more
> linient
> [0]
> http://hg.openjdk.java.net/jdk6/jdk6-gate/jdk/file/tip/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java
> [1] 15.10.2013 16:51:01.646 *WARN* [10.40.247.115 [1381836061645] POST
> /rpc/protocol/model/rf HTTP/1.1]
> org.apache.sling.servlets.post.impl.helper.MediaRangeList Error registering
> media type *; q=.2 java.lang.ArrayIndexOutOfBoundsException: 1
> at
> org.apache.sling.servlets.post.impl.helper.MediaRangeList$MediaRange.setType(MediaRangeList.java:237)
> at
> org.apache.sling.servlets.post.impl.helper.MediaRangeList$MediaRange.<init>(MediaRangeList.java:191)
> at
> org.apache.sling.servlets.post.impl.helper.MediaRangeList.init(MediaRangeList.java:90)
> at
> org.apache.sling.servlets.post.impl.helper.MediaRangeList.<init>(MediaRangeList.java:56)
> at
> org.apache.sling.servlets.post.impl.SlingPostServlet.createPostResponse(SlingPostServlet.java:279)
> at
> org.apache.sling.servlets.post.impl.SlingPostServlet.doPost(SlingPostServlet.java:185)
--
This message was sent by Atlassian JIRA
(v6.1#6144)