Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kurtakov2020-01-06 22:46:33 +0000
committerAlexander Kurtakov2020-01-07 07:11:25 +0000
commit498ebca383476056bb9916a07501a3c7eff47806 (patch)
tree460e45b24d4babcce5f6598a5d01da5e56d393bc
parent05eae1ee06e85c509eafa0d2ebdeb2ae602ab589 (diff)
downloadrt.equinox.bundles-498ebca383476056bb9916a07501a3c7eff47806.tar.gz
rt.equinox.bundles-498ebca383476056bb9916a07501a3c7eff47806.tar.xz
rt.equinox.bundles-498ebca383476056bb9916a07501a3c7eff47806.zip
Handle CommandSession with try-with-resources.I20200107-0600
Change-Id: Ifb41049b384c9db2eea3d56a57d24617dc49b314 Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
-rwxr-xr-xbundles/org.eclipse.equinox.console.ssh/src/org/eclipse/equinox/console/ssh/SshSession.java45
1 files changed, 22 insertions, 23 deletions
diff --git a/bundles/org.eclipse.equinox.console.ssh/src/org/eclipse/equinox/console/ssh/SshSession.java b/bundles/org.eclipse.equinox.console.ssh/src/org/eclipse/equinox/console/ssh/SshSession.java
index 601f643d5..3920684db 100755
--- a/bundles/org.eclipse.equinox.console.ssh/src/org/eclipse/equinox/console/ssh/SshSession.java
+++ b/bundles/org.eclipse.equinox.console.ssh/src/org/eclipse/equinox/console/ssh/SshSession.java
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* Lazar Kirchev, SAP AG - initial API and implementation
*******************************************************************************/
@@ -22,13 +22,13 @@ import java.util.Map;
import org.apache.felix.service.command.CommandProcessor;
import org.apache.felix.service.command.CommandSession;
+import org.eclipse.equinox.console.common.ConsoleInputHandler;
+import org.eclipse.equinox.console.common.ConsoleInputScanner;
import org.eclipse.equinox.console.common.ConsoleInputStream;
import org.eclipse.equinox.console.common.ConsoleOutputStream;
import org.eclipse.equinox.console.common.KEYS;
import org.eclipse.equinox.console.common.terminal.TerminalTypeMappings;
import org.eclipse.equinox.console.storage.SecureUserStore;
-import org.eclipse.equinox.console.common.ConsoleInputHandler;
-import org.eclipse.equinox.console.common.ConsoleInputScanner;
import org.osgi.framework.BundleContext;
/**
@@ -44,7 +44,7 @@ public class SshSession extends Thread implements Closeable {
private OutputStream out;
private TerminalTypeMappings currentMappings;
private Map<String, KEYS> currentEscapesToKey;
-
+
private static final String PROMPT = "prompt";
private static final String OSGI_PROMPT = "osgi> ";
private static final String SCOPE = "SCOPE";
@@ -55,7 +55,7 @@ public class SshSession extends Thread implements Closeable {
private static final String DEFAULT_USER = "equinox";
private static final String CLOSEABLE = "CLOSEABLE";
private static final int ADD_USER_COUNTER_LIMIT = 2;
-
+
public SshSession(CommandProcessor processor, BundleContext context, SshShell sshShell, InputStream in, OutputStream out, TerminalTypeMappings currentMappings, Map<String, KEYS> currentExcapesToKey) {
this.processor = processor;
this.context = context;
@@ -65,7 +65,7 @@ public class SshSession extends Thread implements Closeable {
this.currentMappings = currentMappings;
this.currentEscapesToKey = currentExcapesToKey;
}
-
+
@Override
public void run() {
ConsoleInputStream input = new ConsoleInputStream();
@@ -86,29 +86,30 @@ public class SshSession extends Thread implements Closeable {
((ConsoleInputScanner)consoleInputHandler.getScanner()).setContext(context);
consoleInputHandler.start();
- final CommandSession session;
final PrintStream output = new PrintStream(outp);
- session = processor.createSession(inp, output, output);
- session.put(SCOPE, EQUINOX_SCOPE);
- session.put(PROMPT, OSGI_PROMPT);
- session.put(INPUT_SCANNER, consoleInputHandler.getScanner());
- session.put(SSH_INPUT_SCANNER, inputHandler.getScanner());
- // Store this closeable object in the session, so that the disconnect command can close it
- session.put(CLOSEABLE, this);
- ((ConsoleInputScanner)consoleInputHandler.getScanner()).setSession(session);
+ try (CommandSession session = processor.createSession(inp, output, output)) {
+ session.put(SCOPE, EQUINOX_SCOPE);
+ session.put(PROMPT, OSGI_PROMPT);
+ session.put(INPUT_SCANNER, consoleInputHandler.getScanner());
+ session.put(SSH_INPUT_SCANNER, inputHandler.getScanner());
+ // Store this closeable object in the session, so that the disconnect command
+ // can close it
+ session.put(CLOSEABLE, this);
+ ((ConsoleInputScanner) consoleInputHandler.getScanner()).setSession(session);
- try {
if ("true".equals(context.getProperty(USER_STORAGE_PROPERTY_NAME))) {
String[] names = SecureUserStore.getUserNames();
for (String name : names) {
- // if the default user is the only user, request creation of a new user and delete the default
+ // if the default user is the only user, request creation of a new user and
+ // delete the default
if (DEFAULT_USER.equals(name)) {
if (names.length == 1) {
- session.getConsole().println("Currently the default user is the only one; since it will be deleted after first login, create a new user:");
- boolean isUserAdded =false;
+ session.getConsole().println(
+ "Currently the default user is the only one; since it will be deleted after first login, create a new user:");
+ boolean isUserAdded = false;
int count = 0;
- while (!isUserAdded && count < ADD_USER_COUNTER_LIMIT ){
+ while (!isUserAdded && count < ADD_USER_COUNTER_LIMIT) {
isUserAdded = ((Boolean) session.execute("addUser")).booleanValue();
count++;
}
@@ -126,12 +127,10 @@ public class SshSession extends Thread implements Closeable {
session.execute("gosh --login --noshutdown");
} catch (Exception e) {
e.printStackTrace();
- } finally {
- session.close();
}
}
-
+
@Override
public void close() throws IOException {
this.interrupt();

Back to the top