[NO ISSUE][FAIL] Remove Not Serializable Field From ACIDException - user model changes: no - storage format changes: no - interface changes: no
Details: - Remove not serializable ITransactionContext from ACIDException to avoid serialization error when reporting errors to CC. - Properly handle InterruptedException in lock manager. - Remove unneeded WaitInterruptedException class. Change-Id: Iee054a432b3e618579c3bc418175deab6abfb965 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2559 Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Till Westmann <ti...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/366edf8b Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/366edf8b Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/366edf8b Branch: refs/heads/release-0.9.4-pre-rc Commit: 366edf8b222ec84d1993d606a2bcd965f03e84fb Parents: b1843b2 Author: Murtadha Hubail <mhub...@apache.org> Authored: Mon Apr 2 14:12:19 2018 +0300 Committer: Murtadha Hubail <mhub...@apache.org> Committed: Mon Apr 2 08:42:12 2018 -0700 ---------------------------------------------------------------------- .../common/exceptions/ACIDException.java | 21 -------------- .../service/locking/ConcurrentLockManager.java | 6 ++-- .../locking/WaitInterruptedException.java | 30 -------------------- .../service/locking/LockManagerUnitTest.java | 3 +- 4 files changed, 6 insertions(+), 54 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/366edf8b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ACIDException.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ACIDException.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ACIDException.java index 77634eb..9775b45 100644 --- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ACIDException.java +++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ACIDException.java @@ -18,8 +18,6 @@ */ package org.apache.asterix.common.exceptions; -import org.apache.asterix.common.transactions.ITransactionContext; - /** * Represents an exception related to an unexpected behavior that prevents the * system from supporting ACID guarantees. The exception contains the @@ -30,25 +28,6 @@ import org.apache.asterix.common.transactions.ITransactionContext; public class ACIDException extends RuntimeException { private static final long serialVersionUID = -8855848112541877323L; - private ITransactionContext txnContext; - - public ITransactionContext getTxnContext() { - return txnContext; - } - - public void setTxnContext(ITransactionContext txnContext) { - this.txnContext = txnContext; - } - - public ACIDException(ITransactionContext txnContext, String message) { - super(message); - this.txnContext = txnContext; - } - - public ACIDException(ITransactionContext txnContext, String message, Throwable cause) { - super(message, cause); - this.txnContext = txnContext; - } public ACIDException(String message, Throwable cause) { super(message, cause); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/366edf8b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ConcurrentLockManager.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ConcurrentLockManager.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ConcurrentLockManager.java index 726f95c..c91d233 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ConcurrentLockManager.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ConcurrentLockManager.java @@ -146,7 +146,8 @@ public class ConcurrentLockManager implements ILockManager, ILifeCycleComponent } } } catch (InterruptedException e) { - throw new WaitInterruptedException(txnContext, "interrupted", e); + Thread.currentThread().interrupt(); + throw new ACIDException(e); } finally { group.releaseLatch(); } @@ -371,7 +372,8 @@ public class ConcurrentLockManager implements ILockManager, ILifeCycleComponent } } } catch (InterruptedException e) { - throw new WaitInterruptedException(txnContext, "interrupted", e); + Thread.currentThread().interrupt(); + throw new ACIDException(e); } finally { if (reqSlot != NILL) { // deallocate request, if we allocated one earlier http://git-wip-us.apache.org/repos/asf/asterixdb/blob/366edf8b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/WaitInterruptedException.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/WaitInterruptedException.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/WaitInterruptedException.java deleted file mode 100644 index a4a5ad6..0000000 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/WaitInterruptedException.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.asterix.transaction.management.service.locking; - -import org.apache.asterix.common.exceptions.ACIDException; -import org.apache.asterix.common.transactions.ITransactionContext; - -public class WaitInterruptedException extends ACIDException { - private static final long serialVersionUID = 1L; - - public WaitInterruptedException(ITransactionContext txnContext, String message, Throwable cause) { - super(txnContext, message, cause); - } -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/366edf8b/asterixdb/asterix-transactions/src/test/java/org/apache/asterix/transaction/management/service/locking/LockManagerUnitTest.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/test/java/org/apache/asterix/transaction/management/service/locking/LockManagerUnitTest.java b/asterixdb/asterix-transactions/src/test/java/org/apache/asterix/transaction/management/service/locking/LockManagerUnitTest.java index 817e0f0..0489319 100644 --- a/asterixdb/asterix-transactions/src/test/java/org/apache/asterix/transaction/management/service/locking/LockManagerUnitTest.java +++ b/asterixdb/asterix-transactions/src/test/java/org/apache/asterix/transaction/management/service/locking/LockManagerUnitTest.java @@ -31,6 +31,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; +import org.apache.asterix.common.exceptions.ACIDException; import org.apache.asterix.common.transactions.DatasetId; import org.apache.asterix.common.transactions.ILockManager; import org.apache.asterix.common.transactions.ITransactionContext; @@ -106,7 +107,7 @@ public class LockManagerUnitTest { reqs.add(req(Kind.LOCK, j(2), d(1), e(1), LockMode.X)); reqs.add(req(Kind.PRINT)); reqs.add(req(Kind.INSTANT_LOCK, j(3), d(1), e(1), LockMode.S)); - expectError(execute(reqs), j(3), WaitInterruptedException.class); + expectError(execute(reqs), j(3), ACIDException.class); } @Test