[ https://issues.apache.org/jira/browse/HIVE-22190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Francisco Guerrero reassigned HIVE-22190: ----------------------------------------- Assignee: Francisco Guerrero > Class HiveMetaStoreClient fails to instantiate when running on Java 11 > ---------------------------------------------------------------------- > > Key: HIVE-22190 > URL: https://issues.apache.org/jira/browse/HIVE-22190 > Project: Hive > Issue Type: Bug > Components: Hive > Affects Versions: 3.1.2, 2.3.6 > Environment: Java Version: "11.0.3" 2019-04-16 LTS > Reporter: Francisco Guerrero > Assignee: Francisco Guerrero > Priority: Major > Labels: pull-request-available > Fix For: 2.3.7 > > Attachments: HIVE-22190.01.patch, HIVE-22190.01.patch > > Time Spent: 20m > Remaining Estimate: 0h > > HiveMetaStoreClient fails to initialize in JDK with error: > Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient > with cause > class [Ljava.lang.Object; cannot be cast to class [Ljava.net.URI; > ([Ljava.lang.Object; and [Ljava.net.URI; are in module java.base of loader > 'bootstrap') > This is due the way toArray is being invoked. The compiles and runs well on > Java 8. But when running in Java 11, the class instantiation fails. This is a > snippet of code to reproduce the issue: > {noformat} > URI metastoreUris[] = new URI[2]; > try { > metastoreUris[0] = new URI("http://google.com"); > } catch (URISyntaxException e) { > e.printStackTrace(); > } > List uriList = Arrays.asList(metastoreUris); > Collections.shuffle(uriList); > metastoreUris = (URI[]) uriList.toArray(); > {noformat} > This is causing any client using HiveMetaStoreClient fail, because the > constructor is unable to initialize. The type erasure is handled differently > in Java 8 and Java 11. -- This message was sent by Atlassian Jira (v8.3.2#803003)