[Bugfix] Fixed a problem with recursive seeking and unhandled EOFException("[JUMP]").

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2622 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/FbsConnection.java b/java/src/com/tightvnc/rfbplayer/FbsConnection.java
index b47ea56..5bbf4e0 100644
--- a/java/src/com/tightvnc/rfbplayer/FbsConnection.java
+++ b/java/src/com/tightvnc/rfbplayer/FbsConnection.java
@@ -92,7 +92,7 @@
     }
 
     // Seek to the specified position.
-    fbs.setTimeOffset(timeOffset);
+    fbs.setTimeOffset(timeOffset, false);
     return fbs;
   }
 
diff --git a/java/src/com/tightvnc/rfbplayer/FbsInputStream.java b/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
index 2077bc5..f5f4b39 100644
--- a/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
+++ b/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
@@ -167,11 +167,13 @@
     return (long)(off * playbackSpeed);
   }
 
-  public synchronized void setTimeOffset(long pos) {
+  public synchronized void setTimeOffset(long pos, boolean allowJump) {
     seekOffset = (long)(pos / playbackSpeed);
-    long minJumpForwardOffset = timeOffset + (long)(10000 / playbackSpeed);
-    if (seekOffset < timeOffset || seekOffset >  minJumpForwardOffset) {
-      farSeeking = true;
+    if (allowJump) {
+      long minJumpForwardOffset = timeOffset + (long)(10000 / playbackSpeed);
+      if (seekOffset < timeOffset || seekOffset > minJumpForwardOffset) {
+        farSeeking = true;
+      }
     }
     notify();
   }
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index 6cdd386..e696d95 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -256,7 +256,7 @@
   }
 
   public void setPos(long pos) {
-    fbs.setTimeOffset(pos);
+    fbs.setTimeOffset(pos, true);
   }
 
   public void updatePos() {