Well I dont think our code will help at all becuase the issues are
deep within the Adobe classes which is what I was quoting but if
thats what you want...
var opr:AbstractOperation = getRemoteObject.getOperation(methodName);
opr.addEventListener(ResultEvent.RESULT, gotResult, false, 0, true);
opr.addEventListener(FaultEvent.FAULT, execError, false, 0, true);
opr.send(params);
What I was saying was that if the params are bad then the send method
fails and should invoke our FaultEvent handler.
But what happens is that although send fails the fault handler doesnt
gets called and the reason for that is as is described.
We are not using a Timer, but Adobe IS using a Timer in the class
mx.rpc.AsyncDespatcher.
The AsyncDespatcher is created in the class mx.rpc.AbstractInvoker
another Adobe class when the invoke fails due to bad the params. They
create the object but dont hold a reference to it as below:
mx_internal function invoke(message:IMessage, token:AsyncToken =
null) : AsyncToken{
///SOME CODE////
}catch(e2:Error){
_log.warn(e2.toString());
fault = new Fault("InvokeFailed", e2.message);
new AsyncDispatcher(dispatchRpcEvent, [FaultEvent.createEvent(fault,
token, message)], 10);
}
The problem is that although the AsyncDispatcher is created it gets
GC'd before it can actually do anything. We traced it through into
the AD, and to where the Timer is started in AD but inside AD the
Timer handler never gets called, and that is what is ultimately
responsible for calling the FaultEvent handler in our code. So
becuase it doesnt get called ourt FaultEvent handler wont be called.
tks
--- In [email protected], Tom Chiverton <[EMAIL PROTECTED]>
wrote:
>
> On Thursday 02 Oct 2008, reflexactions wrote:
> > But the AsyncDispatcher.timerHandler method nevers gets called to
>
> The what ? Are you using a Timer and not the error events ?
>
> > dispatch the event becuase no reference was kept to the
AsyncDispatcher
> > and it gets GC'd before the Timer runs.
>
> I've little idea what you mean, could you post some example code ?
>
> --
> Tom Chiverton
> Helping to competently implement performance-oriented attention-
grabbing
> six-generation prospective partnerships
>
>
>
> ****************************************************
>
> This email is sent for and on behalf of Halliwells LLP.
>
> Halliwells LLP is a limited liability partnership registered in
England and Wales under registered number OC307980 whose registered
office address is at Halliwells LLP, 3 Hardman Square,
Spinningfields, Manchester, M3 3EB. A list of members is available
for inspection at the registered office. Any reference to a partner
in relation to Halliwells LLP means a member of Halliwells LLP.
Regulated by The Solicitors Regulation Authority.
>
> CONFIDENTIALITY
>
> This email is intended only for the use of the addressee named
above and may be confidential or legally privileged. If you are not
the addressee you must not read it and must not use any information
contained in nor copy it nor inform any person other than Halliwells
LLP or the addressee of its existence or contents. If you have
received this email in error please delete it and notify Halliwells
LLP IT Department on 0870 365 2500.
>
> For more information about Halliwells LLP visit www.halliwells.com.
>