Repository: hive Updated Branches: refs/heads/master 8fca02e58 -> 6fbdf3748
HIVE-20888: TxnHandler: sort() called on immutable lists (Igor Kryvenko via Eugene Koifman) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/232a0282 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/232a0282 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/232a0282 Branch: refs/heads/master Commit: 232a0282d054f92b666355d0522d29becdef6e1b Parents: 8fca02e Author: Igor Kryvenko <kryvenko7i...@gmail.com> Authored: Wed Nov 14 14:51:47 2018 -0800 Committer: Eugene Koifman <ekoif...@apache.org> Committed: Wed Nov 14 14:51:47 2018 -0800 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/232a0282/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java index 0bb739f..25d79ad 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java @@ -1520,7 +1520,10 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI { txnIds = rqst.getTxnIds(); } - Collections.sort(txnIds); //easier to read logs and for assumption done in replication flow + //Easiest check since we can't differentiate do we handle singleton list or list with multiple txn ids. + if(txnIds.size() > 1) { + Collections.sort(txnIds); //easier to read logs and for assumption done in replication flow + } // Check if all the input txns are in open state. Write ID should be allocated only for open transactions. if (!isTxnsInOpenState(txnIds, stmt)) {