1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/* 2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Copyright (c) 2007 Mockito contributors 3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * This program is made available under the terms of the MIT License. 4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpackage org.mockito.internal.exceptions.stacktrace; 7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.configuration.IMockitoConfiguration; 9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.configuration.GlobalConfiguration; 10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport java.io.Serializable; 12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic class ConditionalStackTraceFilter implements Serializable { 14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson static final long serialVersionUID = -8085849703510292641L; 15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson private IMockitoConfiguration config = new GlobalConfiguration(); 17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson private StackTraceFilter filter = new StackTraceFilter(); 18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public void filter(Throwable throwable) { 20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson if (!config.cleansStackTrace()) { 21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return; 22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson StackTraceElement[] filtered = filter.filter(throwable.getStackTrace(), true); 24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson throwable.setStackTrace(filtered); 25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}