Closing a different stream to prevent a problem. Also, added
an explicit catch and rethrow of a NullPointerException with a comment
so that this doesn't get 'fixed', as fixing it would break the applet
for some reason i don't understand.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2539 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index 490b2bc..7a767f1 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -190,6 +190,9 @@
           }
           rfb.newSession(url);
           vc.updateFramebufferSize();
+        } catch (NullPointerException e) {
+          // catching this causes a hang with 1.4.1 JVM's under Win32 IE
+          throw e;
         }
       }
 
@@ -389,6 +392,7 @@
     } catch (InterruptedException e) {
     }
     if (inSeparateFrame) {
+      vncFrame.removeWindowListener(this);
       vncFrame.dispose();
     }
   }
diff --git a/java/src/com/tightvnc/rfbplayer/RfbProto.java b/java/src/com/tightvnc/rfbplayer/RfbProto.java
index c5af418..c603148 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbProto.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbProto.java
@@ -84,7 +84,7 @@
   public void quit() {
     fbs.quit();
     try {
-      is.close();
+      fbs.close();
     } catch (IOException e) {
       System.out.println("IOException quitting RfbProto: " + e);
     }