[
https://issues.apache.org/jira/browse/SQOOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14381503#comment-14381503
]
Richard commented on SQOOP-1784:
--------------------------------
One quick question, why this JIRA is resolved, while the sub-task is still open?
> Sqoop2: Sending POST request to link or job end-point might end up with NPE
> ---------------------------------------------------------------------------
>
> Key: SQOOP-1784
> URL: https://issues.apache.org/jira/browse/SQOOP-1784
> Project: Sqoop
> Issue Type: Bug
> Affects Versions: 1.99.4
> Reporter: Jarek Jarcec Cecho
> Assignee: Jarek Jarcec Cecho
> Fix For: 1.99.5
>
> Attachments: SQOOP-1784.patch
>
>
> I was testing few patches on real cluster and noticed that creating link on
> current head of {{sqoop2}} branch can lead to NPE in {{LinkBean}}. I've
> traced the code and found out that
> {{[ctx.getRequest().getReader()|https://github.com/apache/sqoop/blob/sqoop2/server/src/main/java/org/apache/sqoop/handler/LinkRequestHandler.java#L114]}}
> is returning empty buffer and as a result the subsequent call to
> {{JSONValue.parse}} returns {{null}} and we hit {{NullPointerException}}
> later in {{LInkBean}}.
> This one was quite hard to crack, but I believe that I've isolated the
> problem. In SQOOP-1774 we've changed the way to get username from header to
> URL parameter and we're using
> {{[ServletRequest.getParameter()|https://github.com/apache/sqoop/blob/sqoop2/server/src/main/java/org/apache/sqoop/server/RequestContext.java#L121]}}
> method for that. Carefully reading it's
> [javadoc|https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)]
> I found out that:
> {quote}
> If the parameter data was sent in the request body, such as occurs with an
> HTTP POST request, then reading the body directly via getInputStream() or
> getReader() can interfere with the execution of this method
> {quote}
> And hence I'm assuming that getting the username has processed the request
> body already and thus we got the eventual {{NullPointerException}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)