diff --git a/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java b/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java index 155567e..9ea174f 100644 --- a/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java +++ b/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java @@ -1298,9 +1298,10 @@ public UserGroupInformation cloneUgi(UserGroupInformation baseUgi) throws IOExce if (getSubjectMethod == null) { throw new IOException("The UGI method was not found: " + ugiCloneError); } - Subject subject = new Subject(); try { - subject.getPrincipals().addAll(((Subject)getSubjectMethod.invoke(baseUgi)).getPrincipals()); + Subject origSubject = (Subject) getSubjectMethod.invoke(baseUgi); + Subject subject = new Subject(false, origSubject.getPrincipals(), + origSubject.getPublicCredentials(), origSubject.getPrivateCredentials()); return ugiCtor.newInstance(subject); } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { throw new IOException(e);