[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

Reply via email to