diff -r 94c1a17117f3 -r 388e48c0a37a emul/src/main/java/java/lang/StackTraceElement.java --- a/emul/src/main/java/java/lang/StackTraceElement.java Sat Sep 29 06:38:34 2012 +0200 +++ b/emul/src/main/java/java/lang/StackTraceElement.java Wed Jan 23 20:16:48 2013 +0100 @@ -25,8 +25,6 @@ package java.lang; -import java.util.Objects; - /** * An element in a stack trace, as returned by {@link * Throwable#getStackTrace()}. Each element represents a single stack frame. @@ -68,8 +66,8 @@ */ public StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber) { - this.declaringClass = Objects.requireNonNull(declaringClass, "Declaring class is null"); - this.methodName = Objects.requireNonNull(methodName, "Method name is null"); + this.declaringClass = declaringClass; + this.methodName = methodName; this.fileName = fileName; this.lineNumber = lineNumber; } @@ -203,8 +201,8 @@ StackTraceElement e = (StackTraceElement)obj; return e.declaringClass.equals(declaringClass) && e.lineNumber == lineNumber && - Objects.equals(methodName, e.methodName) && - Objects.equals(fileName, e.fileName); + equals(methodName, e.methodName) && + equals(fileName, e.fileName); } /** @@ -212,10 +210,14 @@ */ public int hashCode() { int result = 31*declaringClass.hashCode() + methodName.hashCode(); - result = 31*result + Objects.hashCode(fileName); + result = 31*result + (fileName == null ? 0 : fileName.hashCode()); result = 31*result + lineNumber; return result; } + + private static boolean equals(Object a, Object b) { + return (a == b) || (a != null && a.equals(b)); + } private static final long serialVersionUID = 6992337162326171013L; }