Skip to content

Commit

Permalink
[ZEPPELIN-3687] Fix IndexError in python interpreter with empty input
Browse files Browse the repository at this point in the history
### What is this PR for?
If input of python or pyspark interpreter is empty (contains only comments), it will fail with `IndexError` from `zeppelin_python.py`.

### What type of PR is it?
Bug Fix

### What is the Jira issue?
[ZEPPELIN-3687](https://issues.apache.org/jira/projects/ZEPPELIN/issues/ZEPPELIN-3687)

### Screenshots
## Before:
![screen-shot-2018-08-05-at-23 29 34](https://user-images.githubusercontent.com/16215034/43775282-d1274caa-9a54-11e8-9c6c-3b882f96cf7e.jpg)
![screen-shot-2018-08-07-at-11 48 10](https://user-images.githubusercontent.com/16215034/43775285-d385ad2a-9a54-11e8-9a14-aa0080cc5824.jpg)

## After:
![screen-shot-2018-08-07-at-15 11 452](https://user-images.githubusercontent.com/16215034/43775306-e17acf28-9a54-11e8-8378-9b6a8b1c817c.jpg)
![screen-shot-2018-08-07-at-15 11 45](https://user-images.githubusercontent.com/16215034/43775313-e51f81c8-9a54-11e8-829f-d2aba1cc9613.jpg)

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Author: oxygen311 <alex39-09@mail.ru>
Author: Alexey <alex39-09@mail.ru>

Closes #3115 from oxygen311/DW-17854 and squashes the following commits:

54004b0 [oxygen311] Fix tests
ad8d07f [Alexey] Add test for empty input
5d0fdd2 [oxygen311] Fix IndexError in python interpreter
  • Loading branch information
oxygen311 authored and zjffdu committed Aug 14, 2018
1 parent 6beb1bb commit cd16547
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion python/src/main/resources/python/zeppelin_python.py
Expand Up @@ -145,7 +145,7 @@ def getCompletion(self, text_value):
if (nhooks > 0):
to_run_hooks = code.body[-nhooks:]
to_run_exec, to_run_single = (code.body[:-(nhooks + 1)],
[code.body[-(nhooks + 1)]])
[code.body[-(nhooks + 1)]] if len(code.body) > nhooks else [])
try:
for node in to_run_exec:
mod = ast.Module([node])
Expand Down
Expand Up @@ -185,6 +185,22 @@ public void testPythonBasics() throws InterpreterException, InterruptedException
interpreterResultMessages = context.out.toInterpreterResultMessage();
assertEquals(1, interpreterResultMessages.size());
assertEquals("there is no Error: ok\n", interpreterResultMessages.get(0).getData());

// ZEPPELIN-3687
context = getInterpreterContext();
result = interpreter.interpret("# print('Hello')", context);
Thread.sleep(100);
assertEquals(InterpreterResult.Code.SUCCESS, result.code());
interpreterResultMessages = context.out.toInterpreterResultMessage();
assertEquals(0, interpreterResultMessages.size());

context = getInterpreterContext();
result = interpreter.interpret(
"# print('Hello')\n# print('How are u?')\n# time.sleep(1)", context);
Thread.sleep(100);
assertEquals(InterpreterResult.Code.SUCCESS, result.code());
interpreterResultMessages = context.out.toInterpreterResultMessage();
assertEquals(0, interpreterResultMessages.size());
}

@Test
Expand Down

0 comments on commit cd16547

Please sign in to comment.