diff --git a/core/src/main/java/jenkins/agents/WebSocketAgents.java b/core/src/main/java/jenkins/agents/WebSocketAgents.java
index d18e546bafa3..005587c6365a 100644
--- a/core/src/main/java/jenkins/agents/WebSocketAgents.java
+++ b/core/src/main/java/jenkins/agents/WebSocketAgents.java
@@ -44,6 +44,7 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import jenkins.slaves.JnlpAgentReceiver;
@@ -166,11 +167,19 @@ protected void error(Throwable cause) {
class Transport extends AbstractByteBufferCommandTransport {
+ Transport() {
+ super(true);
+ }
+
@Override
- protected void write(ByteBuffer header, ByteBuffer data) throws IOException {
- LOGGER.finest(() -> "sending message of length " + ChunkHeader.length(ChunkHeader.peek(header)));
- sendBinary(header, false);
- sendBinary(data, true);
+ protected void write(ByteBuffer headerAndData) throws IOException {
+ // As in Engine.runWebSocket:
+ LOGGER.finest(() -> "sending message of length " + (headerAndData.remaining() - ChunkHeader.SIZE));
+ try {
+ sendBinary(headerAndData).get(5, TimeUnit.MINUTES);
+ } catch (Exception x) {
+ throw new IOException(x);
+ }
}
@Override
diff --git a/pom.xml b/pom.xml
index 7065f7f14507..bed299585f12 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,7 @@ THE SOFTWARE.
https://www.jenkins.io/changelog
- 3085.vc4c6977c075a
+ 3107.v665000b_51092
4.7