提交 f490bba9 编写于 作者: L lana

Merge

...@@ -777,7 +777,8 @@ public class Throwable implements Serializable { ...@@ -777,7 +777,8 @@ public class Throwable implements Serializable {
* @see java.lang.Throwable#printStackTrace() * @see java.lang.Throwable#printStackTrace()
*/ */
public synchronized Throwable fillInStackTrace() { public synchronized Throwable fillInStackTrace() {
if (stackTrace != null) { if (stackTrace != null ||
backtrace != null /* Out of protocol state */ ) {
fillInStackTrace(0); fillInStackTrace(0);
stackTrace = UNASSIGNED_STACK; stackTrace = UNASSIGNED_STACK;
} }
...@@ -817,7 +818,8 @@ public class Throwable implements Serializable { ...@@ -817,7 +818,8 @@ public class Throwable implements Serializable {
private synchronized StackTraceElement[] getOurStackTrace() { private synchronized StackTraceElement[] getOurStackTrace() {
// Initialize stack trace field with information from // Initialize stack trace field with information from
// backtrace if this is the first call to this method // backtrace if this is the first call to this method
if (stackTrace == UNASSIGNED_STACK) { if (stackTrace == UNASSIGNED_STACK ||
(stackTrace == null && backtrace != null) /* Out of protocol state */) {
int depth = getStackTraceDepth(); int depth = getStackTraceDepth();
stackTrace = new StackTraceElement[depth]; stackTrace = new StackTraceElement[depth];
for (int i=0; i < depth; i++) for (int i=0; i < depth; i++)
...@@ -865,7 +867,8 @@ public class Throwable implements Serializable { ...@@ -865,7 +867,8 @@ public class Throwable implements Serializable {
} }
synchronized (this) { synchronized (this) {
if (this.stackTrace == null) // Immutable stack if (this.stackTrace == null && // Immutable stack
backtrace == null) // Test for out of protocol state
return; return;
this.stackTrace = defensiveCopy; this.stackTrace = defensiveCopy;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册