| /* |
| * Copyright (c) 2007 Mockito contributors |
| * This program is made available under the terms of the MIT License. |
| */ |
| |
| package org.mockito.exceptions.base; |
| |
| import org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter; |
| |
| import java.io.ObjectStreamException; |
| |
| /** |
| * Raised by mockito to emit an error either due to Mockito, or due to the User. |
| * |
| * <p> |
| * The stack trace is filtered from mockito calls if you are using {@link #getStackTrace()}. |
| * For debugging purpose though you can still access the full stacktrace using {@link #getUnfilteredStackTrace()}. |
| * However note that other calls related to the stackTrace will refer to the filter stacktrace. |
| * </p> |
| * |
| * @since 1.9.6 |
| */ |
| public class MockitoSerializationIssue extends ObjectStreamException { |
| |
| private StackTraceElement[] unfilteredStackTrace; |
| |
| public MockitoSerializationIssue(String message, Exception cause) { |
| super(message); |
| initCause(cause); |
| filterStackTrace(); |
| } |
| |
| @Override |
| public StackTraceElement[] getStackTrace() { |
| filterStackTrace(); |
| return super.getStackTrace(); |
| } |
| |
| private void filterStackTrace() { |
| unfilteredStackTrace = super.getStackTrace(); |
| |
| ConditionalStackTraceFilter filter = new ConditionalStackTraceFilter(); |
| filter.filter(this); |
| } |
| |
| public StackTraceElement[] getUnfilteredStackTrace() { |
| return unfilteredStackTrace; |
| } |
| } |