Search in sources :

Example 1 with DfFireSqlScriptSQLException

use of org.dbflute.exception.DfFireSqlScriptSQLException in project dbflute-core by dbflute.

the class DfSqlFileFireMan method executeScriptFile.

protected DfSqlFileRunnerResult executeScriptFile(DfSqlFileRunner runner, SystemScript script, File sqlFile) {
    final String sqlPath = resolvePath(sqlFile);
    final String baseDir = Srl.substringLastFront(sqlPath, "/");
    final String scriptName = Srl.substringLastRear(sqlPath, "/");
    _log.info("...Executing the script: " + sqlPath);
    final ProcessResult processResult;
    try {
        processResult = script.execute(new File(baseDir), scriptName);
    } catch (SystemScriptUnsupportedScriptException ignored) {
        _log.info("Skipped the script for system mismatch: " + scriptName);
        return null;
    }
    final String console = processResult.getConsole();
    if (Srl.is_NotNull_and_NotTrimmedEmpty(console)) {
        _log.info("Caught the console for " + scriptName + ":" + ln() + console);
    }
    final DfSqlFileRunnerResult runnerResult = new DfSqlFileRunnerResult(sqlFile);
    runnerResult.setTotalSqlCount(1);
    final int exitCode = processResult.getExitCode();
    if (exitCode != 0) {
        final String msg = "The script failed: " + scriptName + " exitCode=" + exitCode;
        // wrapping quickly because SQLFailureException needs SQLException
        // (and nested exception message has debug information so simple message here)
        final SQLException sqlEx = new DfFireSqlScriptSQLException(msg);
        final SQLFailureException failureEx = new SQLFailureException("Break the process for script failure.", sqlEx);
        // no error continue, script error is treated as programming error
        // because you can freely skip SQL failure in your script
        runnerResult.setBreakCause(failureEx);
        return runnerResult;
    } else {
        runnerResult.setGoodSqlCount(1);
        return runnerResult;
    }
}
Also used : SQLException(java.sql.SQLException) DfFireSqlScriptSQLException(org.dbflute.exception.DfFireSqlScriptSQLException) SystemScriptUnsupportedScriptException(org.dbflute.helper.process.exception.SystemScriptUnsupportedScriptException) DfFireSqlScriptSQLException(org.dbflute.exception.DfFireSqlScriptSQLException) ProcessResult(org.dbflute.helper.process.ProcessResult) File(java.io.File) SQLFailureException(org.dbflute.exception.SQLFailureException)

Aggregations

File (java.io.File)1 SQLException (java.sql.SQLException)1 DfFireSqlScriptSQLException (org.dbflute.exception.DfFireSqlScriptSQLException)1 SQLFailureException (org.dbflute.exception.SQLFailureException)1 ProcessResult (org.dbflute.helper.process.ProcessResult)1 SystemScriptUnsupportedScriptException (org.dbflute.helper.process.exception.SystemScriptUnsupportedScriptException)1