From 407382d8af1f85193b4eefb017697ee433e3dad9 Mon Sep 17 00:00:00 2001 From: Roland Schulz Date: Tue, 10 Jun 2014 15:19:42 -0400 Subject: [PATCH] Bug 437083 - Connection error "session is down" isOpen is expected to cleanup old sessions but didn't do so if fIsOpen is false. Change-Id: I65290d06eec51f65281c9f7eb16eba7e3bb5dcc9 --- .../remote/internal/jsch/core/JSchConnection.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchConnection.java b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchConnection.java index 1ebc6b4a284..4e83f70adec 100644 --- a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchConnection.java +++ b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchConnection.java @@ -666,9 +666,9 @@ public class JSchConnection implements IRemoteConnection { for (Session session : fSessions) { isOpen &= session.isConnected(); } - if (!isOpen) { - close(); // Cleanup if session is closed - } + } + if (!isOpen) { + close(); // Cleanup if session is closed } return isOpen; } @@ -823,9 +823,14 @@ public class JSchConnection implements IRemoteConnection { newSession(fManager.getUserAuthenticator(this), subMon.newChild(10)); loadEnv(subMon.newChild(10)); } - fWorkingDir = getCwd(subMon.newChild(10)); - loadProperties(subMon.newChild(10)); fIsOpen = true; + try { + fWorkingDir = getCwd(subMon.newChild(10)); + loadProperties(subMon.newChild(10)); + } catch (RemoteConnectionException e) { + fIsOpen = false; + throw e; + } fireConnectionChangeEvent(IRemoteConnectionChangeEvent.CONNECTION_OPENED); } }