views:

481

answers:

1

For some reason everyone who upgrades their Flash Player to the latest version (10,0,32,18) immediately start having problems with my application. According to my logging, LocalConnection.connect() is failing. The only documented reason for this is that another SWF running on the machine is using that name. However, I know nothing else is using that name (I generate a unique name every time, AND no other SWFs are running on my machine).

The code worked perfectly fine before the update, but after the update it breaks every single time. However, there's no information that I can find that suggests there were any planned changes to the way LocalConnection works that would be causing this.

It looks like LocalConnection was changed for this update, but only for the Mac, and in a way that should be fully backwards compatible (the issues I'm seeing are on Windows. Haven't had a mac to test it on).

Has anyone else seen this? So far I haven't been able to reproduce it in simple test cases, but it's 100% consistent in my application.

Any ideas on what the problem might be?

A: 

Found a fix.

In my code I had a class that extended LocalConnection which would connect on construction. In its constructor it called:

super.connect(name);

Changing this to:

this.connect(name);

fixed the problem (My class didn't override the connect method).

I'm glad this fixed it, but I'm a bit concerned that this was the fix. Since my class didn't override the connect() method I would expect super.connect() and this.connect() to be equivalent. And up until the latest update of the Flash player they were. The fact that this broke implies to me that a bug was introduced somewhere in the player's inheritance handling. Worrysome.

Thanks to http://brendyn.com/blog/?p=80&cpage=1#comment-24 for suggesting the fix.

Herms