aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/internal/ArrayComparisonFailure.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/junit/internal/ArrayComparisonFailure.java')
-rw-r--r--src/main/java/org/junit/internal/ArrayComparisonFailure.java98
1 files changed, 53 insertions, 45 deletions
diff --git a/src/main/java/org/junit/internal/ArrayComparisonFailure.java b/src/main/java/org/junit/internal/ArrayComparisonFailure.java
index 08851de..8627d6e 100644
--- a/src/main/java/org/junit/internal/ArrayComparisonFailure.java
+++ b/src/main/java/org/junit/internal/ArrayComparisonFailure.java
@@ -7,53 +7,61 @@ import org.junit.Assert;
/**
* Thrown when two array elements differ
+ *
* @see Assert#assertArrayEquals(String, Object[], Object[])
*/
public class ArrayComparisonFailure extends AssertionError {
- private static final long serialVersionUID= 1L;
-
- private List<Integer> fIndices= new ArrayList<Integer>();
- private final String fMessage;
- private final AssertionError fCause;
-
- /**
- * Construct a new <code>ArrayComparisonFailure</code> with an error text and the array's
- * dimension that was not equal
- * @param cause the exception that caused the array's content to fail the assertion test
- * @param index the array position of the objects that are not equal.
- * @see Assert#assertArrayEquals(String, Object[], Object[])
- */
- public ArrayComparisonFailure(String message, AssertionError cause, int index) {
- fMessage= message;
- fCause= cause;
- addDimension(index);
- }
-
- public void addDimension(int index) {
- fIndices.add(0, index);
- }
-
- @Override
- public String getMessage() {
- StringBuilder builder= new StringBuilder();
- if (fMessage != null)
- builder.append(fMessage);
- builder.append("arrays first differed at element ");
- for (int each : fIndices) {
- builder.append("[");
- builder.append(each);
- builder.append("]");
- }
- builder.append("; ");
- builder.append(fCause.getMessage());
- return builder.toString();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override public String toString() {
- return getMessage();
- }
+ private static final long serialVersionUID = 1L;
+
+ /*
+ * We have to use the f prefix until the next major release to ensure
+ * serialization compatibility.
+ * See https://github.com/junit-team/junit/issues/976
+ */
+ private final List<Integer> fIndices = new ArrayList<Integer>();
+ private final String fMessage;
+
+ /**
+ * Construct a new <code>ArrayComparisonFailure</code> with an error text and the array's
+ * dimension that was not equal
+ *
+ * @param cause the exception that caused the array's content to fail the assertion test
+ * @param index the array position of the objects that are not equal.
+ * @see Assert#assertArrayEquals(String, Object[], Object[])
+ */
+ public ArrayComparisonFailure(String message, AssertionError cause, int index) {
+ this.fMessage = message;
+ initCause(cause);
+ addDimension(index);
+ }
+
+ public void addDimension(int index) {
+ fIndices.add(0, index);
+ }
+
+ @Override
+ public String getMessage() {
+ StringBuilder sb = new StringBuilder();
+ if (fMessage != null) {
+ sb.append(fMessage);
+ }
+ sb.append("arrays first differed at element ");
+ for (int each : fIndices) {
+ sb.append("[");
+ sb.append(each);
+ sb.append("]");
+ }
+ sb.append("; ");
+ sb.append(getCause().getMessage());
+ return sb.toString();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ return getMessage();
+ }
}