Mark, Interesting discussion - interesting problem. BTW, I don't think these return events are really 'duplicates' per se, but repeats of the earlier return events. LIke First invoke returns event1 Second invoke returns event1 then event2 etc. Out of curiosity, what middleware are you using? I'm using CFMX 7.02. Jeff
-----Original Message----- From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Mark Doberenz Sent: Tuesday, January 16, 2007 11:50 AM To: flexcoders@yahoogroups.com Subject: Re: [flexcoders] Cairngorm Duplicate Remote Object Return Events OK, so maybe having a Singleton delegate wouldn't be a good idea. Here's a bit more I've found on the topic. I put a breakpoint at the Command result method and found that the address location for the commands were changing. So, essentially, the commands are being persisted which in turn are persisting new instances of the delegate and the event listeners that are a part of those delegates. Removing the event listener in the delegate first won't work because the memory locations of the responder (the command) are changing. Essentially, every time you create a new cairngorm event, you will create new instances of the delegate and then the event listeners, so the same result will fire the event listeners multiple times when you've created multiple cairngorm events. That's at least my take on the issue. I have an app where I'm trying to perform a LoginEvent and I noticed that every time I hit the Login button, I was creating a new LoginEvent and so the more I tried to login, the more results I was getting back. I tried making the LoginEvent a private var on the view, and that seemed to work the first time, but after that it wasn't passing the user data anymore. Not sure what that's about. I don't like this fix because it would mean that there's only one instance of each of the cairngorm events in the whole app. On 1/16/07, Battershall, Jeff <[EMAIL PROTECTED]> wrote: I'm not sure a singleton delegate would do the trick - and then you might have threading issues - right? I'm kind of suspicious of the fact that the RO instances are being persisted in the singleton ServiceLocator. It's those RO instances' methods that are getting listeners attached to them. I'm going to try a couple of things - one is to explictly remove the event listener when the result comes over the wire. I've determined this - the remote object is invoked only once outgoing from Flex. It is the duplicate result events that are happening. One way to work around this would be to add a unique token to the rpc call as described in the Flex docs (search ACT in the Flex Dev guide) and only execute your return code when the token matches the one coming over the wire. I'm going to experiment with that as well. I think this may well be some sort of scoping issue caused by the level of abstraction that the Cairngorm framework stipulates. -----Original Message----- From: flexcoders@yahoogroups.com [mailto: flexcoders@ <mailto:flexcoders@> yahoogroups.com] On Behalf Of Mark Doberenz Sent: Monday, January 15, 2007 10:31 PM To: flexcoders@yahoogroups.com Subject: Re: [flexcoders] Cairngorm Duplicate Remote Object Return Events I was seeing this same thing today with some stuff I was working on. I hadn't spent any time trying to remove the event listeners before adding them again though. So, I don't know if that would work, but apparently not. I wonder if the delegate should actually be set up as a Singleton so that multiple instances of the delegate weren't floating around cathing the events every time. This way, you could guarantee that only one instance was being used. Just a thought. I don't have the code in front of me, but if you're reinstanciating the delegate every time the command is called, then this could explain it. Try setting a breakpoint in your delegate and look at the memory address for "this" and see if it's changing each time the delegate's called. On 1/15/07, Battershall, Jeff <[EMAIL PROTECTED] > wrote: This is a tough one - and I'm getting a similar behavior with fileupload - duplicate completion events in subsequent calls to the same Event/Command/Delegate. I'm having to parse out the duplicates on the client side and I've yet to determine the culprit. You'd think that there's a new instance of each Event, Command and Delegate classes responding to each gesture, but somehow something is getting persisted and producing a ghosting effect after the first call to the same class. The remote object instances in ServiceLocator are getting persisted, that's for sure, and I don't know if that has anything to do with it. Jeff -----Original Message----- From: [EMAIL PROTECTED] ups.com <http://ups.com/> [mailto: flexcoders@ <mailto:flexcoders@> yahoogroups.com] On Behalf Of Thijs Triemstra Sent: Monday, January 15, 2007 4:04 PM To: flexcoders@yahoogroups.com <http://ups.com/> Subject: Re: [flexcoders] Cairngorm Duplicate Remote Object Return Events I'm having the same problem with NetConnection and Cairngorm, it triggers more and more NetStatus events everytime I reconnect to the server. The server doesn't show any reconnects so it's a clientside thing but not sure why.. I also tried removing the listeners but nothing changed. Thijs Op 15-jan-2007, om 19:01 heeft Martin Wood-Mitrovski het volgende geschreven: > One theory I have about what 'might' be happening is that before I make > my servce call, I'm adding event listeners for the result/fault and > these may be duplicate ones, because the remote object instance is being > persisted in ServiceLocator. However, I tried explictly removing the > listeners before adding them and no dice. sounds like the most likely thing to be happening. try setting a breakpoint on where you remove / add the listeners and check that the references are the ones you expect, i.e. you are not trying to remove a different listener or something.