[
https://issues.apache.org/jira/browse/HIVE-30022?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sercan Tekin reassigned HIVE-30022:
-----------------------------------
Assignee: Sercan Tekin
> Hive CLI fails with NullPointerException when USE_BEELINE_FOR_HIVE_CLI=false
> ----------------------------------------------------------------------------
>
> Key: HIVE-30022
> URL: https://issues.apache.org/jira/browse/HIVE-30022
> Project: Hive
> Issue Type: Bug
> Components: CLI
> Affects Versions: 4.2.0
> Reporter: Sercan Tekin
> Assignee: Sercan Tekin
> Priority: Major
> Labels: pull-request-available
>
> When {{USE_BEELINE_FOR_HIVE_CLI=false}} the Hive CLI fails with a
> {{NullPointerException}} in interactive mode:
> {code:java}
> hive> show tables;
> Exception in thread "main" java.lang.NullPointerException: Cannot invoke
> "org.jline.reader.LineReader.getTerminal()" because "this.reader" is null
> at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:379)
> at
> org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:860)
> at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:791)
> at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:705)
> at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
> at java.base/java.lang.reflect.Method.invoke(Method.java:580)
> at org.apache.hadoop.util.RunJar.run(RunJar.java:333)
> at org.apache.hadoop.util.RunJar.main(RunJar.java:254)
> {code}
> {{executeDriver()}} creates a new {{CliDriver}} instance and uses it for
> operations such as:
> {code:java}
> CliDriver cli = newCliDriver();
> cli.setHiveVariables(oproc.getHiveVariables());
> // use the specified database if specified
> cli.processSelectDatabase(ss);
> // Execute -i init files (always in silent mode)
> cli.processInitFiles(ss);
> {code}
> However, the {{LineReader}} is initialized on the outer {{CliDriver}}
> instance:
> {code:java}
> setupLineReader();
> {code}
> As a result, {{cli.reader}} remains null when {{cli.processLine()}} is called.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)