Example usage for org.springframework.beans FatalBeanException getCause

List of usage examples for org.springframework.beans FatalBeanException getCause

Introduction

In this page you can find the example usage for org.springframework.beans FatalBeanException getCause.

Prototype

public synchronized Throwable getCause() 

Source Link

Document

Returns the cause of this throwable or null if the cause is nonexistent or unknown.

Usage

From source file:org.bigtester.ate.model.caserunner.CaseRunner.java

/**
 * Test runner1./*  w  w  w  . ja  v  a  2 s  .co m*/
 * 
 * @param ctx
 *            the ctx
 * @throws Throwable
 */
// @Test(dataProvider = "dp")
public void runTest(TestParameters testParams) throws Throwable {
    String testname = testParams.getTestFilename();

    // ApplicationContext context;
    try {
        context = new FileSystemXmlApplicationContext(testname);
        IMyWebDriver myWebD = (IMyWebDriver) GlobalUtils.findMyWebDriver(context);
        mainDriver = myWebD.getWebDriverInstance();
        myTestCase = GlobalUtils.findTestCaseBean(getContext());
        getMyTestCase().setStepThinkTime(testParams.getStepThinkTime());
        getMyTestCase().setCurrentWebDriver(myWebD);
        getMyTestCase().goSteps();

    } catch (FatalBeanException fbe) {
        if (fbe.getCause() instanceof FileNotFoundException) {
            context = new ClassPathXmlApplicationContext(testname);
            mainDriver = ((IMyWebDriver) GlobalUtils.findMyWebDriver(context)).getWebDriverInstance();
            myTestCase = GlobalUtils.findTestCaseBean(getContext());
            myTestCase.setStepThinkTime(testParams.getStepThinkTime());
            getMyTestCase().goSteps();

        } else if (fbe instanceof BeanCreationException) { // NOPMD
            ITestResult itr = Reporter.getCurrentTestResult();

            if (itr.getThrowable() != null && itr.getThrowable() instanceof TestDataException) {
                TestDataException tde = (TestDataException) itr.getThrowable();
                tde.setTestStepName(((BeanCreationException) fbe.getCause()).getBeanName());
                tde.setTestCaseName(((BeanCreationException) fbe).getResourceDescription());
                tde.setMessage(tde.getMessage() + LogbackTag.TAG_SEPERATOR + tde.getTestCaseName()
                        + LogbackTag.TAG_SEPERATOR + tde.getTestStepName());
                throw (TestDataException) itr.getThrowable();
            } else { // other test case bean creation errors. need to create
                // another exception to handle it.
                String[] fullST = Utils.stackTrace(fbe, false);
                int TWO = 2; // NOPMD
                if (fullST.length < TWO) {
                    LogbackWriter.writeSysError("java internal error in stack trace.");
                } else {
                    String errLog = fullST[1];
                    if (null == errLog)
                        LogbackWriter.writeSysError("java internal error in stack trace.");
                    else
                        LogbackWriter.writeSysError(errLog);
                }
                throw fbe;

            }
        } else {
            throw fbe;
        }
    }
}