{
try {
final Connection jdbcConn = DriverManager.getConnection(url, finalProps);
self.runtime.pin();
self.runtime.enqueueTask(new ScriptTask() {
@Override
public void execute(Context cx, Scriptable scope)
{
try {
JdbcConnection conn =
(JdbcConnection)cx.newObject(self, JdbcConnection.CLASS_NAME);
conn.init(jdbcConn, self.runtime);
cb.call(cx, cb, self, new Object[] {Undefined.instance, conn});
} finally {
self.runtime.unPin();
}
}
}, domain);
} catch (final SQLException sqle) {
self.runtime.enqueueTask(new ScriptTask() {
@Override
public void execute(Context cx, Scriptable scope)
{
cb.call(cx, cb, self, new Object[] { makeSqlError(cx, scope, sqle) });
}