public void calculate(IThrowableProxy tp) {
        while (tp != null) {
            populateFrames(tp.getStackTraceElementProxyArray());
            IThrowableProxy[] suppressed = tp.getSuppressed();
            if (suppressed != null) {
                for (IThrowableProxy current : suppressed) {
                    populateFrames(current.getStackTraceElementProxyArray());
                }
            }
            tp = tp.getCause();
        }
    }
@Test
    // Test http://jira.qos.ch/browse/LBCLASSIC-125
    public void noClassDefFoundError_LBCLASSIC_125Test() throws MalformedURLException {
        ClassLoader cl = (URLClassLoader) makeBogusClassLoader();
        Thread.currentThread().setContextClassLoader(cl);
        Throwable t = new Throwable("x");
        ThrowableProxy tp = new ThrowableProxy(t);
        StackTraceElementProxy[] stepArray = tp.getStackTraceElementProxyArray();
        StackTraceElement bogusSTE = new StackTraceElement("com.Bogus", "myMethod", "myFile", 12);
        stepArray[0] = new StackTraceElementProxy(bogusSTE);
        PackagingDataCalculator pdc = tp.getPackagingDataCalculator();
        // NoClassDefFoundError should be caught
        pdc.calculate(tp);

    }