diff src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 482:73b52954efc9

handling vncconnection failure rfb/protocol/Protocol.java HG: changed src/main/java/com/glavsoft/ rfb/protocol/ReceiverTask.java HG: changed src/viewer_swing/ java/com/glavsoft/viewer/swing/SwingRfbConnectionWorker.java
author oshiro
date Thu, 24 Jan 2019 17:19:05 +0900
parents 6e30cb5d905f
children 520a9a3e4975
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Wed Jan 23 17:57:16 2019 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Thu Jan 24 17:19:05 2019 +0900
@@ -153,22 +153,10 @@
                 System.out.println(e.getMessage());
                 System.out.println(e.getCause().getClass().getSimpleName());
                 if (e.getCause().getClass().getSimpleName().equals("SocketTimeoutException")) {
-                    try {
-                        if (rfb.isTreeManager()) {
-                            sendFrameBufferUpdateRequest();
-                        }
-                        reader.reset();
-                    } catch (TransportException e1) {
-                        e1.printStackTrace();
-                    }
+                    sendFrameBufferUpdateRequest();
                     continue;
-                } else if (e.getMessage() == "java.io.EOFException") {
-                    try {
-                        sendFrameBufferUpdateRequest();
-                        reader.reset();
-                    } catch (TransportException e1) {
-                        e1.printStackTrace();
-                    }
+//                } else if (e.getMessage() == "java.io.EOFException") {
+//                    sendFrameBufferUpdateRequest();
                 }
                 logger.severe("Close session : ReceiverTask : " + e.getMessage());
                 if(!rfb.isTreeManager() && !(rfb.getTerminationType())) {
@@ -182,6 +170,8 @@
                     } catch (TransportException e1) {
                         e1.printStackTrace();
                     }
+                } else {
+                    rfb.sendDesktopSizeChange((short) -1);
                 }
                 stopTask();
             } catch (ProtocolException e) {
@@ -209,6 +199,17 @@
         }
     }
 
+    public void sendFrameBufferUpdateRequest() {
+        try {
+            if (rfb.isTreeManager()) {
+                sendFrameBufferUpdateRequest0();
+            }
+            reader.reset();
+        } catch (TransportException e1) {
+            e1.printStackTrace();
+        }
+    }
+
     private void sleep(int i) {
         try {
             Thread.sleep(i);
@@ -355,9 +356,7 @@
             reader.close();
         }
 
-        if (rfb.isTreeManager()) {
-            sendFrameBufferUpdateRequest();
-        }
+        sendFrameBufferUpdateRequest();
     }
 
     private void setScreenParameter(FramebufferUpdateRectangle rect,int singleWidth ,int singleHeight) {
@@ -379,7 +378,7 @@
         }
     }
 
-    private void sendFrameBufferUpdateRequest() {
+    private void sendFrameBufferUpdateRequest0() {
         if (needSendPixelFormat) {
             needSendPixelFormat = false;
             context.setPixelFormat(pixelFormat);