case "data":
int i;
for(i=objects.size() - 1; objects.elementAt(i) != null; i--);
- JSArray arr = new JSArray();
+ JS arr = JS.newArray();
try {
for(int j = i + 1; j<objects.size(); j++) arr.put(JS.N(j - i - 1), (JS)objects.elementAt(j));
} catch (JSExn e) {
// Send ///////////////////////////////////////////////////////////////////////////
- protected String buildRequest(JSArray args) throws JSExn, IOException {
+ protected String buildRequest(JS[] args) throws JSExn, IOException {
StringBuffer content = new StringBuffer();
content.append("\r\n");
content.append("<?xml version=\"1.0\"?>\n");
content.append(method);
content.append("</methodName>\n");
content.append(" <params>\n");
- for(int i=0; i<args.length(); i++) {
+ for(int i=0; i<args.length; i++) {
content.append(" <param>\n");
- appendObject(args.elementAt(i), content);
+ appendObject(args[i], content);
content.append(" </param>\n");
}
content.append(" </params>\n");
// Call Sequence //////////////////////////////////////////////////////////////////////////
public final JS call(JS a0, JS a1, JS a2, JS[] rest, int nargs) throws JSExn {
- JSArray args = new JSArray();
- for(int i=0; i<nargs; i++) args.addElement(i==0?a0:i==1?a1:i==2?a2:rest[i-3]);
- return call(args);
- }
-
- public final JS call(final JSArray args) throws JSExn {
+ final JS[] args = new JS[nargs];
+ for(int i=0;i<nargs;i++) args[i]= i==0?a0:i==1?a1:i==2?a2:rest[i-3];
try {
final JS.UnpauseCallback callback = JS.pause();
- new java.lang.Thread() { public void run() { call(callback, args); } }.start();
+ new java.lang.Thread() { public void run() { call(callback,args); } }.start();
return null; // doesn't matter since we paused
} catch (NotPauseableException npe) {
throw new JSExn("cannot invoke an XML-RPC call in the foreground thread");
}
}
- final void call(final JS.UnpauseCallback callback, final JSArray args) {
+ final void call(final JS.UnpauseCallback callback, JS[] args) {
try {
if (Log.rpc) Log.info(this, "call to " + url + " : " + method);
if (tracker == null) tracker = new Hash();