Renamed invoke methods to make their use clearer. Some minor code cleanup.

This commit is contained in:
hns 2003-10-23 12:53:43 +00:00
parent c0830be336
commit f08e350367
2 changed files with 16 additions and 50 deletions

View file

@ -560,7 +560,7 @@ public final class Application implements IPathElement, Runnable {
// get evaluator and invoke
ev = getEvaluator();
res = ev.invoke(req, session);
res = ev.invokeHttp(req, session);
}
} catch (ApplicationStoppedException stopped) {
// let the servlet know that this application has gone to heaven
@ -1332,7 +1332,7 @@ public final class Application implements IPathElement, Runnable {
// as first thing, invoke function onStart in the root object
RequestEvaluator eval = getEvaluator();
try {
eval.invokeFunction((INode) null, "onStart", new Object[0]);
eval.invokeInternal(null, "onStart", new Object[0]);
} catch (Exception ignore) {
logEvent("Error in " + name + "/onStart(): " + ignore);
} finally {
@ -1377,7 +1377,7 @@ public final class Application implements IPathElement, Runnable {
try {
Object[] param = { session.getSessionID() };
eval.invokeFunction(userhandle, "onLogout", param);
eval.invokeInternal(userhandle, "onLogout", param);
} catch (Exception ignore) {
}
}
@ -1439,7 +1439,7 @@ public final class Application implements IPathElement, Runnable {
r.start();
} else {
try {
thisEvaluator.invokeFunction(null, j.getFunction(),
thisEvaluator.invokeInternal(null, j.getFunction(),
new Object[0], j.getTimeout());
} catch (Exception ex) {
logEvent("error running " + j + ": " + ex.toString());
@ -1889,7 +1889,7 @@ public final class Application implements IPathElement, Runnable {
public void run() {
try {
thisEvaluator.invokeFunction(null, job.getFunction(),
thisEvaluator.invokeInternal(null, job.getFunction(),
new Object[0], job.getTimeout());
} catch (Exception ex) {
// gets logged in RequestEvaluator

View file

@ -448,7 +448,7 @@ public final class RequestEvaluator implements Runnable {
currentElement = root;
if (method.indexOf(".") > -1) {
if (method.indexOf('.') > -1) {
StringTokenizer st = new StringTokenizer(method, ".");
int cnt = st.countTokens();
@ -513,10 +513,14 @@ public final class RequestEvaluator implements Runnable {
}
}
// avoid going into transaction if called function doesn't exist
// avoid going into transaction if called function doesn't exist.
boolean functionexists = true;
functionexists = scriptingEngine.hasFunction(thisObject, method);
// this only works for the (common) case that method is a plain
// method name, not an obj.method path
if (method.indexOf('.') < 0) {
functionexists = scriptingEngine.hasFunction(thisObject, method);
}
if (!functionexists) {
// function doesn't exist, nothing to do here.
@ -643,7 +647,7 @@ public final class RequestEvaluator implements Runnable {
*
* @throws Exception ...
*/
public synchronized ResponseTrans invoke(RequestTrans req, Session session)
public synchronized ResponseTrans invokeHttp(RequestTrans req, Session session)
throws Exception {
this.reqtype = HTTP;
this.req = req;
@ -750,11 +754,11 @@ public final class RequestEvaluator implements Runnable {
*
* @throws Exception ...
*/
public synchronized Object invokeFunction(Object object, String functionName,
public synchronized Object invokeInternal(Object object, String functionName,
Object[] args)
throws Exception {
// give internal call more time (15 minutes) to complete
return invokeFunction(object, functionName, args, 60000L * 15);
return invokeInternal(object, functionName, args, 60000L * 15);
}
/**
@ -769,7 +773,7 @@ public final class RequestEvaluator implements Runnable {
*
* @throws Exception ...
*/
public synchronized Object invokeFunction(Object object, String functionName,
public synchronized Object invokeInternal(Object object, String functionName,
Object[] args, long timeout)
throws Exception {
reqtype = INTERNAL;
@ -798,44 +802,6 @@ public final class RequestEvaluator implements Runnable {
return result;
}
/**
*
*
* @param session ...
* @param functionName ...
* @param args ...
*
* @return ...
*
* @throws Exception ...
*/
public synchronized Object invokeFunction(Session session, String functionName,
Object[] args)
throws Exception {
reqtype = INTERNAL;
this.session = session;
thisObject = null;
method = functionName;
this.args = args;
res = new ResponseTrans();
result = null;
exception = null;
checkThread();
wait(app.requestTimeout);
if (reqtype != NONE) {
stopThread();
}
// reset res for garbage collection (res.data may hold reference to evaluator)
res = null;
if (exception != null) {
throw (exception);
}
return result;
}
private Object getChildElement(Object obj, String name) throws ScriptingException {
if (scriptingEngine.hasFunction(obj, "getChildElement")) {