[
https://issues.apache.org/jira/browse/SQOOP-1795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Qian Xu updated SQOOP-1795:
---------------------------
Description:
The situation of dealing with the post data is very tricky IMHO.
1. {{getRequest().getReader()}} must be called at the first place. As reading
position cannot be reset, you might get unexpected result without notice.
SQOOP-1784 is a case of the situation.
2. Sqoop client sends post data as a JSON object rather than query string
format. Usually it'd suggest to wrap the JSON object as value, and key can be
named as "jsonObject". The server will call
{{ctx.getParameterValue("jsonObject")}} to get the value.
I'd suggest to have a {{getRawPostData()}}, so that callers can put finger away
from {{getReader()}}.
was:
The situation of dealing with the post data is very tricky IMHO.
1. {{getRequest().getReader()}} must be called at the first place. As reader
cannot go back to head, it's state is mutable. It any *invisible* invocation of
{{getReader()}} happened, it will be very hard to track down the problem., such
as SQOOP-1784.
2. The current code assumes the post data to be valid JSON object. Usually it'd
be better wrapped into an object, such as "jsonObject", so that we can call
{{ctx.getParameterValue("jsonObject")}}.
I'd provide a {{getRawPostData()}} so that callers can put finger away from
{{getReader()}}.
> Sqoop2: Retrieve Http post data in plausible manner
> ---------------------------------------------------
>
> Key: SQOOP-1795
> URL: https://issues.apache.org/jira/browse/SQOOP-1795
> Project: Sqoop
> Issue Type: Sub-task
> Reporter: Qian Xu
> Assignee: Qian Xu
> Priority: Minor
> Fix For: 1.99.5
>
>
> The situation of dealing with the post data is very tricky IMHO.
> 1. {{getRequest().getReader()}} must be called at the first place. As reading
> position cannot be reset, you might get unexpected result without notice.
> SQOOP-1784 is a case of the situation.
> 2. Sqoop client sends post data as a JSON object rather than query string
> format. Usually it'd suggest to wrap the JSON object as value, and key can be
> named as "jsonObject". The server will call
> {{ctx.getParameterValue("jsonObject")}} to get the value.
> I'd suggest to have a {{getRawPostData()}}, so that callers can put finger
> away from {{getReader()}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)