[NO ISSUE][RT] Exception with atomic insert/upsert supressed by NPE
- user model changes: no
- storage format changes: no
- interface changes: no
Change-Id: Ib4532f98b4d9bd41b267dc2af7b62373bce6090c
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17955
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
Reviewed-by: Peeyush Gupta <peeyush.gupta@couchbase.com>
Tested-by: Peeyush Gupta <peeyush.gupta@couchbase.com>
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
index 1a23ca8..829c9cc 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
@@ -251,7 +251,7 @@
final Map<String, ILSMComponentId> componentIdMap = new HashMap<>();
boolean atomic = false;
for (IIndex index : indexes) {
- if (((ILSMIndex) index).isAtomic()) {
+ if (index != null && ((ILSMIndex) index).isAtomic()) {
PrimaryIndexOperationTracker opTracker =
((PrimaryIndexOperationTracker) ((ILSMIndex) index).getOperationTracker());
opTracker.finishAllFlush();
@@ -279,7 +279,7 @@
private void abortAtomicInsertDelete() throws HyracksDataException {
if (isPrimary) {
for (IIndex index : indexes) {
- if (((ILSMIndex) index).isAtomic()) {
+ if (index != null && ((ILSMIndex) index).isAtomic()) {
PrimaryIndexOperationTracker opTracker =
((PrimaryIndexOperationTracker) ((ILSMIndex) index).getOperationTracker());
opTracker.abort();
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
index 2c89b61..7891312 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
@@ -354,7 +354,7 @@
final Map<String, ILSMComponentId> componentIdMap = new HashMap<>();
boolean atomic = false;
for (IIndex index : indexes) {
- if (((ILSMIndex) index).isAtomic()) {
+ if (index != null && ((ILSMIndex) index).isAtomic()) {
PrimaryIndexOperationTracker opTracker =
((PrimaryIndexOperationTracker) ((ILSMIndex) index).getOperationTracker());
opTracker.finishAllFlush();
@@ -380,7 +380,7 @@
private void abortAtomicInsert() throws HyracksDataException {
for (IIndex index : indexes) {
- if (((ILSMIndex) index).isAtomic()) {
+ if (index != null && ((ILSMIndex) index).isAtomic()) {
PrimaryIndexOperationTracker opTracker =
((PrimaryIndexOperationTracker) ((ILSMIndex) index).getOperationTracker());
opTracker.abort();
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
index 113a40a..71f699d 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
@@ -576,7 +576,7 @@
final Map<String, ILSMComponentId> componentIdMap = new HashMap<>();
boolean atomic = false;
for (IIndex index : indexes) {
- if (((ILSMIndex) index).isAtomic()) {
+ if (index != null && ((ILSMIndex) index).isAtomic()) {
PrimaryIndexOperationTracker opTracker =
((PrimaryIndexOperationTracker) ((ILSMIndex) index).getOperationTracker());
opTracker.finishAllFlush();
@@ -602,7 +602,7 @@
private void abortAtomicUpsert() throws HyracksDataException {
for (IIndex index : indexes) {
- if (((ILSMIndex) index).isAtomic()) {
+ if (index != null && ((ILSMIndex) index).isAtomic()) {
PrimaryIndexOperationTracker opTracker =
((PrimaryIndexOperationTracker) ((ILSMIndex) index).getOperationTracker());
opTracker.abort();