From: Matthew Khouzam Date: Thu, 14 Jan 2016 21:41:48 +0000 (-0500) Subject: ctf: no longer rely on default character encoding in Metadata.java X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=192639cf6e6c027b30da3a3cf663d1d0ee028d77;p=deliverable%2Ftracecompass.git ctf: no longer rely on default character encoding in Metadata.java Change-Id: I0aac8cbcef9871352545101978c09916278e59c5 Signed-off-by: Matthew Khouzam Reviewed-on: https://git.eclipse.org/r/64411 Reviewed-by: Marc-Andre Laperle Tested-by: Marc-Andre Laperle Reviewed-by: Hudson CI --- diff --git a/ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/ctf/core/trace/Metadata.java b/ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/ctf/core/trace/Metadata.java index 57e93610c6..e5214493f2 100644 --- a/ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/ctf/core/trace/Metadata.java +++ b/ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/ctf/core/trace/Metadata.java @@ -59,6 +59,9 @@ public class Metadata { // ------------------------------------------------------------------------ // Constants // ------------------------------------------------------------------------ + + private static final Charset ASCII_CHARSET = Charset.forName("ASCII"); //$NON-NLS-1$ + private static final String TEXT_ONLY_METADATA_HEADER_PREFIX = "/* CTF"; //$NON-NLS-1$ private static final int PREVALIDATION_SIZE = 8; @@ -155,7 +158,7 @@ public class Metadata { try (FileInputStream fis = new FileInputStream(getMetadataPath()); FileChannel metadataFileChannel = fis.getChannel(); /* Check if metadata is packet-based, if not it is text based */ - Reader metadataTextInput = (isPacketBased(metadataFileChannel) ? readBinaryMetaData(metadataFileChannel) : new FileReader(getMetadataPath()));) { + Reader metadataTextInput = (isPacketBased(metadataFileChannel) ? readBinaryMetaData(metadataFileChannel) : new FileReader(fis.getFD()));) { readMetaDataText(metadataTextInput); @@ -221,10 +224,9 @@ public class Metadata { return true; } bb.position(0); - Charset forName = Charset.forName("ASCII"); //$NON-NLS-1$ byte bytes[] = new byte[PREVALIDATION_SIZE]; bb.get(bytes); - String text = new String(bytes, forName); + String text = new String(bytes, ASCII_CHARSET); return text.startsWith(TEXT_ONLY_METADATA_HEADER_PREFIX); } catch (IOException e) { throw new CTFException(e.getMessage(), e); @@ -442,7 +444,7 @@ public class Metadata { payloadByteBuffer.get(payloadByteArray, 0, payloadSize); /* Convert the byte array to a String */ - String str = new String(payloadByteArray, 0, payloadSize); + String str = new String(payloadByteArray, 0, payloadSize, ASCII_CHARSET); /* Append it to the existing metadata */ metadataText.append(str);