X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=liblttng-ust-java-agent%2Fjava%2Flttng-ust-agent-common%2Forg%2Flttng%2Fust%2Fagent%2Fclient%2FSessiondCommand.java;h=8b04f4bb38e658d0907451f9c02ea8854c8372d0;hb=8c207906959b7f74165febd957ac9c7472d017cd;hp=fd5bb1de89030579734d158b7e577acb028c6aa7;hpb=8ab5c06b92ac9a06ba2743470a38e4e1cfc6a3c9;p=lttng-ust.git diff --git a/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/SessiondCommand.java b/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/SessiondCommand.java index fd5bb1de..8b04f4bb 100644 --- a/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/SessiondCommand.java +++ b/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/SessiondCommand.java @@ -19,6 +19,7 @@ package org.lttng.ust.agent.client; import java.nio.ByteBuffer; +import java.nio.charset.Charset; /** * Base class to represent all commands sent from the session daemon to the Java @@ -29,6 +30,12 @@ import java.nio.ByteBuffer; */ abstract class SessiondCommand { + /** + * Encoding that should be used for the strings in the sessiond agent + * protocol on the socket. + */ + protected static final Charset SESSIOND_PROTOCOL_CHARSET = Charset.forName("UTF-8"); + enum CommandType { /** List logger(s). */ CMD_LIST(1), @@ -75,18 +82,18 @@ abstract class SessiondCommand { * formatted. */ protected static String readNextString(ByteBuffer buffer) { - int length = buffer.getInt(); - if (length < 0) { + int nbBytes = buffer.getInt(); + if (nbBytes < 0) { /* The string length should be positive */ return null; } - if (length == 0) { + if (nbBytes == 0) { /* The string is explicitly an empty string */ return ""; } - byte[] stringBytes = new byte[length]; + byte[] stringBytes = new byte[nbBytes]; buffer.get(stringBytes); - return new String(stringBytes).trim(); + return new String(stringBytes, SESSIOND_PROTOCOL_CHARSET).trim(); } }