[Development] Graceful fallback to non-indexed seeking if Range headers in HTTP requests are not supported by the HTTP server or HTTP proxy.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2617 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/FbsConnection.java b/java/src/com/tightvnc/rfbplayer/FbsConnection.java
index aa45d7d..3e9e3a5 100644
--- a/java/src/com/tightvnc/rfbplayer/FbsConnection.java
+++ b/java/src/com/tightvnc/rfbplayer/FbsConnection.java
@@ -223,19 +223,23 @@
     }
 
     // Seek to the keyframe.
-    // FIXME: Check return value of openHttpByteRange(), it can be null.
     InputStream is = openHttpByteRange(fbkURL, entry.key_fpos, entry.key_size);
-    DataInputStream data = new DataInputStream(is);
+    if (is == null) {
+      return null;
+    }
 
     // Load keyframe data from the .fbk file, prepend RFB initialization data.
+    DataInputStream data = new DataInputStream(is);
     byte[] keyData = new byte[rfbInitData.length + (int)entry.key_size];
     System.arraycopy(rfbInitData, 0, keyData, 0, rfbInitData.length);
     data.readFully(keyData, rfbInitData.length, (int)entry.key_size);
     data.close();
 
     // Open the FBS stream.
-    // FIXME: Check return value of openHttpByteRange(), it can be null.
     is = openHttpByteRange(fbsURL, entry.fbs_fpos, -1);
+    if (is == null) {
+      return null;
+    }
     return new FbsInputStream(is, entry.timestamp, keyData, entry.fbs_skip);
   }