[ 
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)

Reply via email to