Skip to content

Commit 7ad24ab

Browse files
committed
When JSch session is null, open channel and execute command after create session and connect
1 parent 24ef747 commit 7ad24ab

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

src/main/java/root/common/server/implement/JschServer.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,12 @@ public void disConnect(Session session) {
7777

7878
public Channel openExecChannel(Session session, String command) {
7979
if(session == null) {
80-
throw new NullPointerException("Session is null");
80+
init();
81+
try {
82+
session = this.connect(this.getSession());
83+
} catch (JSchException e) {
84+
log.error(e.getMessage());
85+
}
8186
}
8287

8388
Channel channel = null;

src/test/java/root/common/server/implement/JschServerTest.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ public void testOpenExecChannel_Success() throws JSchException {
103103
}
104104

105105
@Test
106-
public void testOpenExecChannel_Fail_SessionIsNull() {
107-
NullPointerException thrown = assertThrows(NullPointerException.class,
108-
() -> jsch.openExecChannel(null, "echo 1"));
109-
assertEquals("Session is null", thrown.getMessage());
106+
public void testOpenExecChannel_Success_WhenSessionIsNull() throws JSchException {
107+
Session session = null;
108+
Channel channel = jsch.openExecChannel(session, "echo 1");
109+
assertNotNull(channel);
110110
}
111111

112112
@Test
@@ -125,6 +125,19 @@ public void testConnectChannel_Success() throws JSchException, IOException {
125125
}
126126
}
127127

128+
@Test
129+
public void testConnectChannel_Success_WhenSessionIsNull() throws JSchException, IOException {
130+
Session session = null;
131+
Channel channel = jsch.openExecChannel(session, "echo 1");
132+
InputStream in = jsch.connectChannel(channel);
133+
134+
assertNotNull(in);
135+
try (BufferedReader br = new BufferedReader(new InputStreamReader(in))) {
136+
String echoLine = br.readLine();
137+
assertEquals(echoLine, "1");
138+
}
139+
}
140+
128141
@Test
129142
public void testDisConnectChannel_Success() throws JSchException {
130143
jsch.init();

0 commit comments

Comments
 (0)