Uh oh!
There was an error while loading. Please reload this page.
[ZEPPELIN-3014] NPE bug fix and Error message enhancement with Kylin Interpreter - #2634
[ZEPPELIN-3014] NPE bug fix and Error message enhancement with Kylin Interpreter#2634jinxliu wants to merge 6 commits into
Conversation
jinxliu
commented
Oct 27, 2017
merge recent changes
tinkoff-dwh
commented
Oct 27, 2017
@jinxliu |
can you update the PR title, description and see https://zeppelin.apache.org/contribution/contributions.html |
| </dependency> | ||
| <dependency> | ||
| <groupId>org.json</groupId> | ||
| <artifactId>json</artifactId> |
There was a problem hiding this comment.
is this a new dependency? if so, it should be added to the LICENSE file
There was a problem hiding this comment.
zeppelin-interpreter has dependecy Gson
There was a problem hiding this comment.
gson yes, and this is org.json? I didn't see it in the LICENSE file
There was a problem hiding this comment.
i mean need to use Gson instead of org.json
There was a problem hiding this comment.
Thanks very much @tinkoff-dwh and @felixcheung for your comments. I was aware that zeppelin already has the dependency of gson, so is it mandatory to use gson instead of json?
There was a problem hiding this comment.
not necessarily. each interpreter can use its own set of things. but new binary dependencies we need to list in LICENSE file for the release.
There was a problem hiding this comment.
@felixcheung I have replaced json with gson and I will push the code soon.
| StringBuilder errorMessage = new StringBuilder("Failed : HTTP error code " + code); | ||
| logger.error("failed to execute query: " + result); | ||
| try { | ||
| JSONObject content = new JSONObject(result); |
There was a problem hiding this comment.
what if result is an empty string?
There was a problem hiding this comment.
If result is empty string, depending on the response code:
if the code is 200, an empty table will be rendered;
if the code is not 200, there will be error message, with status code, but no detailed error message, e.g. "Failed : HTTP error code 500. Error message: "
| errorMessage.append(". Error message: Unauthorized. This request requires " | ||
| + "HTTP authentication. Please make sure your have set your credentials correctly."); | ||
| } else { | ||
| errorMessage.append(". Error message: " + result); |
There was a problem hiding this comment.
previously we were formatting the output (see L186) before setting it to InterpreterResult - do we still need to do that here?
There was a problem hiding this comment.
@felixcheung yes we still need to do that. The code here is to parse the result and get detailed error message from kylin when query fails. The formatting result will be called when the response code is 200 and query successes.
There was a problem hiding this comment.
actually, to clarify I was referring to
String output;
- logger.info("Output from Server .... \n");
- while ((output = br.readLine()) != null) {
- logger.info(output);
- sb.append(output).append('\n');
}
- InterpreterResult rett = new InterpreterResult(InterpreterResult.Code.SUCCESS, - formatResult(sb.toString()));
does it still need to read the result line by line like this from before, before passing to formatResult()?
There was a problem hiding this comment.
@felixcheung no we do not need to do that. I replace the line by line processing with the following statement: result = IOUtils.toString(response.getEntity().getContent(), "UTF-8")
keep up to date with apache master branch
jinxliu
commented
Nov 1, 2017
@felixcheung is there something wrong with travis-ci? |
felixcheung
commented
Nov 1, 2017
seems like travis problem. please try to kick it off again by close-reopen this PR |
jinxliu
commented
Nov 1, 2017
I have tried several times since yesterday, hope this time it works. |
jinxliu
commented
Nov 1, 2017
@felixcheung it still does not work. |
zjffdu
commented
Nov 1, 2017
@jinxliu Could you rebase and try again ? |
jinxliu
commented
Nov 2, 2017
zjffdu
commented
Nov 2, 2017
@jinxliu Actually you don't need to create another PR, for the next time you just need to rebase and force push |
What is this PR for?
A few sentences describing the overall goals of the pull request's commits.
First time? Check out the contributing guide - https://zeppelin.apache.org/contribution/contributions.html
What type of PR is it?
Bug Fix
Todos
What is the Jira issue?
How should this be tested?
Screenshots (if appropriate)
before: NPE when result set is empty
after: no NPE when result set is empty, just an empty table
before: when query fails, only error code is returned, no error message
after: when query fails, both error code and error message are displayed to users
Questions: