[NO ISSUE][FAIL] Use Formatted Exception For Duplicate Fields
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Use formatted duplicate field name exception
instead of illegal state exception.
Change-Id: I7ef04b8723c027aa3b43d35bfe96ecaf575ccc4c
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2852
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
Reviewed-by: Till Westmann <tillw@apache.org>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/objects/ObjectsQueries.xml b/asterixdb/asterix-app/src/test/resources/runtimets/queries/objects/ObjectsQueries.xml
index 44eb244..4d9403d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/objects/ObjectsQueries.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/objects/ObjectsQueries.xml
@@ -115,7 +115,7 @@
<test-case FilePath="objects">
<compilation-unit name="closed-closed-fieldname-conflict_issue173">
<output-dir compare="Text">closed-closed-fieldname-conflict_issue173</output-dir>
- <expected-error>Closed fields 0 and 1 have the same field name "name"</expected-error>
+ <expected-error>Duplicate field name "name"</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="objects">
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml
index c217aa4..cfd8aeb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml
@@ -178,7 +178,7 @@
<test-case FilePath="objects">
<compilation-unit name="closed-closed-fieldname-conflict_issue173">
<output-dir compare="Text">closed-closed-fieldname-conflict_issue173</output-dir>
- <expected-error>Closed fields 0 and 1 have the same field name "name"</expected-error>
+ <expected-error>Duplicate field name "name"</expected-error>
<source-location>false</source-location>
</compilation-unit>
</test-case>
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java
index 55108a1..be6cf62 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java
@@ -22,6 +22,8 @@
import java.io.IOException;
import java.util.Arrays;
+import org.apache.asterix.common.exceptions.ErrorCode;
+import org.apache.asterix.common.exceptions.RuntimeDataException;
import org.apache.asterix.om.types.ARecordType;
import org.apache.hyracks.api.dataflow.value.IBinaryComparator;
import org.apache.hyracks.api.dataflow.value.IBinaryHashFunction;
@@ -99,8 +101,7 @@
int j = getFieldIndex(baaos.getByteArray(), serializedFieldNameOffsets[i],
UTF8StringUtil.getStringLength(baaos.getByteArray(), serializedFieldNameOffsets[i]));
if (j != i) {
- throw new IllegalStateException("Closed fields " + j + " and " + i
- + " have the same field name \"" + fieldNames[i] + "\"");
+ throw new RuntimeDataException(ErrorCode.DUPLICATE_FIELD_NAME, fieldNames[i]);
}
}
} catch (IOException e) {