diff --git a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DummyTxnManager.java b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DummyTxnManager.java index 7bc03c6f4472c6be4071c4c98f2abde71da489b1..8fdac5e29e723695a00e99751303ed54e6a9e5e5 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DummyTxnManager.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DummyTxnManager.java @@ -254,9 +254,13 @@ static void dedupLockObjects(List lockObjects) { private HiveLockMode getWriteEntityLockMode (WriteEntity we) { HiveLockMode lockMode = we.isComplete() ? HiveLockMode.EXCLUSIVE : HiveLockMode.SHARED; - //but the writeEntity is complete in DDL operations, and we need check its writeType to - //to determine the lockMode - switch (we.getWriteType()) { + //but the writeEntity is complete in DDL operations, instead DDL sets the writeType, so + //we use it to determine its lockMode, and first we check if the writeType was set + WriteEntity.WriteType writeType = we.getWriteType(); + if (writeType == null) { + return lockMode; + } + switch (writeType) { case DDL_EXCLUSIVE: return HiveLockMode.EXCLUSIVE; case DDL_SHARED: