> On Nov. 26, 2014, 12:52 a.m., Jarek Cecho wrote:
> > server/src/main/java/org/apache/sqoop/server/RequestContext.java, lines 
> > 112-117
> > <https://reviews.apache.org/r/28434/diff/1/?file=775517#file775517line112>
> >
> >     I'm wondering whether this method would return the JSON correctly as 
> > expected if I would send POST request as this one:
> >     
> >     POST /page?argument=value HTTP/1.0 
> >     
> >     {"json":"value"}
> >     
> >     E.g. in this case I would expect that the getParametersMap will return 
> > Map of size two and then it will depend on the Map ordering whether we get 
> > the correct one or not. Let's perhaps add unit tests to ensure that we have 
> > the behaviour that we're expecting?
> 
> Qian Xu wrote:
>     Thanks. It seems the approach does not work. Sorry, we still have to 
> stick with `getReader()` and to be very carefully.

We cannot avoid abuse of `getRequest().getReader()`. But I think we should 
guard `JsonBean.restore()`. In case of unexpected result, it should throw an 
exception (i.e. `TextException` or `DecodeException`) instead of NPE. Any ideas?


- Qian


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28434/#review62997
-----------------------------------------------------------


On Nov. 27, 2014, 5:01 p.m., Qian Xu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/28434/
> -----------------------------------------------------------
> 
> (Updated Nov. 27, 2014, 5:01 p.m.)
> 
> 
> Review request for Sqoop.
> 
> 
> Bugs: SQOOP-1795
>     https://issues.apache.org/jira/browse/SQOOP-1795
> 
> 
> Repository: sqoop-sqoop2
> 
> 
> Description
> -------
> 
> Sqoop client posts parameters as JSON to server. As it is not query string 
> based pattern, HttpServletRequest is not able to return the JSON using 
> `getParameterValue(...)`. The current solution is to call `getReader()` to 
> get raw post data. There is a danger, if the method is NOT called at the 
> first place. You do not know, whether the reading position is at the 
> beginning. You might get unexpected result without notice.
> 
> Expectedly:
> 1. For query string based pattern, caller should always use 
> `getParameterValue(...)`.
> 2. For raw post data usage, the post data is parsed as the first parameter's 
> key. 
> 
> The patch proposes to add `RequestContext.getFirstParameterName()`. so that 
> we can keep fingers away from `getReader()`.
> 
> 
> Diffs
> -----
> 
>   server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java 
> 75a069a 
>   server/src/main/java/org/apache/sqoop/handler/LinkRequestHandler.java 
> d2d080b 
>   server/src/main/java/org/apache/sqoop/server/RequestContext.java d0963f5 
> 
> Diff: https://reviews.apache.org/r/28434/diff/
> 
> 
> Testing
> -------
> 
> All passed. (Nits: adding unit tests)
> 
> 
> Thanks,
> 
> Qian Xu
> 
>

Reply via email to