Index: com/ibatis/sqlmap/engine/builder/xml/XmlParserState.java =================================================================== --- com/ibatis/sqlmap/engine/builder/xml/XmlParserState.java (revision 796991) +++ com/ibatis/sqlmap/engine/builder/xml/XmlParserState.java (working copy) @@ -136,6 +136,7 @@ if (customizedSQLExecutor != null) { try { config.getClient().getDelegate().setCustomExecutor(customizedSQLExecutor); + config.getClient().getDelegate().getSqlExecutor().init(config, globalProps); } catch (Exception e) { config.getErrorContext().setCause(e); config.getErrorContext().setMoreInfo("Loading of customizedSQLExecutor failed. Please check Properties file."); Index: com/ibatis/sqlmap/engine/execution/DefaultSqlExecutor.java =================================================================== --- com/ibatis/sqlmap/engine/execution/DefaultSqlExecutor.java (revision 796991) +++ com/ibatis/sqlmap/engine/execution/DefaultSqlExecutor.java (working copy) @@ -291,6 +291,10 @@ } } } + + public void init(SqlMapConfiguration config, Properties globalProps) { + // No implementation is required in DefaultSqlExecutor. + } private ResultSet handleMultipleResults(PreparedStatement ps, StatementScope statementScope, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException { ResultSet rs; Index: com/ibatis/sqlmap/engine/execution/SqlExecutor.java =================================================================== --- com/ibatis/sqlmap/engine/execution/SqlExecutor.java (revision 796991) +++ com/ibatis/sqlmap/engine/execution/SqlExecutor.java (working copy) @@ -116,4 +116,12 @@ * @param sessionScope - the session to clean up */ public void cleanup(SessionScope sessionScope); + + /** + * Initializing SQL Executor by passing configuration and global properties. + * + * @param config - the configuration class, which contains complete configuration info + * @param globalProps + */ + public void init(SqlMapConfiguration config, Properties globalProps); }