Welcome!

Adobe Flex Authors: Shelly Palmer, Elizabeth White, RealWire News Distribution, PR.com Newswire, Corey Roth

Related Topics: Adobe Flex, Java

Adobe Flex: Blog Feed Post

Sherlock Holmes and Adobe's Error #2032

Distributed applications involve several players and you need to slowly walk the walk analyzing each of them

During yesterday’s Flex training the students had to install an Adobe's sample application "Tour De Flex". Everyone did. Everyone but one student was able to run this application. He was getting a weird error “An Internet connection is required” even though he was online. No proxies.  This student went through the badge install of this AIR application from his Firefox browser. After a quick interrogation, the student has revealed that he ignored several error messages #2032, which is the infamous streaming error that has no generic cure. Basically, that application was installed, but with a little brain tumor.

Google returned nothing but friendly posts suggesting to connect to the Internet.   Actually, there was one post that Tour De Flex periodically performs server pings to check that the Internet connection is in place. In cases like this you may get a feeling of loosing control.

"I look at them, and the only thought which comes to me is a feeling of their isolation and of the impunity with which crime may be committed there."

Since this accident has happened during the training class, I decided to use this opportunity to illustrate the approach for debugging something like this. Distributed applications involve several players and you need to slowly walk the walk analyzing each of them.


"It seemed to me that a careful examination of the room and the lawn might possibly reveal some traces of this mysterious individual. You know my methods, Watson."

First of all, we couldn’t blame the application itself because everyone else in the class could run it.
Second, we couldn't the Windows 7 where this error happened cause several other people had the same OS.

"Results without causes are much more impressive."

But there should be someone to blame, right? Let’s think aloud. Tour De Flex  tries to ping some remote machine. What does it get back?  “An Internet connection is required”. Can it be that some bad guy intercepts this message and returns this erroneous message? I asked if there is any anti-virus or a security software installed on this machine? Nope. Well, it’s gotta be someone….

"I had little doubt that I had come to the end of my career when I perceived the somewhat sinister figure of the late Professor Moriarty standing upon the narrow pathway which led to safety."

Most likely this AIR application makes a call to the remote server either using a simple HTTP or AMF protocol (it’s not likely that RTMP protocol is being used here).  So our next goal is to see what URL is being used for this mysterious ping, how it’s being routed and what’s coming back, if anything at all.

The next step is to localize the broken link in this distributed application. We need a sniffer program to monitor the network traffic initiated from this PC. This shouldn’t be a regular HTTP sniffer that besides HTTP can see AMF calls too.

I like Charles Proxy monitoring tool that does it nicely. We were about to go this route, but then my colleague decided to reinstall the AIR application using the Internet Explorer. This time there were no traces of error 2032, and Tour De Flex started to work fine.

There something in the browser. The next stop is the menu Tools, Add-ons… The Greasemonkey add-on was the main suspect, and its removal fixed the error #2032.

There’s nothing in the AIR. It’s elementary, Watson!

Read the original blog entry...

More Stories By Yakov Fain

Yakov Fain is a co-founder of two software companies: Farata Systems and SuranceBay. He authored several technical books and lots of articles on software development. Yakov is Java Champion (https://java-champions.java.net). He leads leads Princeton Java Users Group. Two of Yakov's books will go in print this year: "Enterprise Web Development" (O'Reilly) and "Java For Kids" (No Starch Press).