From aa074c986ac3d33dea03e89277ec2975e5ea1a8f Mon Sep 17 00:00:00 2001 From: Egor Ushakov Date: Mon, 30 Jun 2025 14:08:18 +0200 Subject: [PATCH] Revert "[debugger] avoid using writeUTF, it does not work for long strings" We have to be compatible with the previous format This reverts commit 9242ed91f50c3f1ce5c449b03755e9982d95805a. GitOrigin-RevId: effbe96b8adff9e39ba73eb274066360fa8df694 --- .../intellij/debugger/ui/tree/render/BatchEvaluator.kt | 4 +--- .../com/intellij/rt/debugger/BatchEvaluatorServer.java | 9 ++------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.kt b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.kt index a8da62d7ec22..73ed79bce82f 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.kt +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.kt @@ -106,9 +106,7 @@ class BatchEvaluator private constructor() { var count = 0 while (dis.available() > 0) { val error = dis.readBoolean() - val data = ByteArray(dis.readInt()) - dis.readFully(data) - val message = String(data, Charsets.UTF_8) + val message = dis.readUTF() if (count >= requests.size) { LOG.error("Invalid number of results: required " + requests.size + ", reply = " + bytes.contentToString()) return false diff --git a/java/java-runtime/src/com/intellij/rt/debugger/BatchEvaluatorServer.java b/java/java-runtime/src/com/intellij/rt/debugger/BatchEvaluatorServer.java index ab6050b6ae9b..295d3f605560 100644 --- a/java/java-runtime/src/com/intellij/rt/debugger/BatchEvaluatorServer.java +++ b/java/java-runtime/src/com/intellij/rt/debugger/BatchEvaluatorServer.java @@ -1,4 +1,4 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. /* * @author Eugene Zhuravlev @@ -8,7 +8,6 @@ package com.intellij.rt.debugger; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.nio.charset.StandardCharsets; @SuppressWarnings("unused") public final class BatchEvaluatorServer { @@ -34,11 +33,7 @@ public final class BatchEvaluatorServer { } dos.writeBoolean(error); - // do not use writeUTF as it supports only 65535 symbols - // dos.writeUTF(res); - byte[] stringBytes = res.getBytes(StandardCharsets.UTF_8); - dos.writeInt(stringBytes.length); - dos.write(stringBytes); + dos.writeUTF(res); } return bas.toString("ISO-8859-1"); }