aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/LogReader.java6
-rw-r--r--vespajlib/src/main/java/com/yahoo/compress/ZstdCompressor.java3
-rw-r--r--vespajlib/src/main/java/com/yahoo/compress/ZstdOutputStream.java1
3 files changed, 6 insertions, 4 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/handler/LogReader.java b/container-core/src/main/java/com/yahoo/container/handler/LogReader.java
index 250e3c8b607..2d60dc3f37b 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/LogReader.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/LogReader.java
@@ -104,14 +104,15 @@ class LogReader {
try {
in = Files.newInputStream(log);
}
- catch (NoSuchFileException e) {
+ catch (NoSuchFileException e) { // File may have been compressed since we found it.
if ( ! zipped)
try {
- in = Files.newInputStream(Paths.get(log.toString() + ".gz"));
+ in = Files.newInputStream(Paths.get(log + ".gz"));
zipped = true;
}
catch (NoSuchFileException ignored) { }
}
+
this.reader = new BufferedReader(new InputStreamReader(zipped ? new GZIPInputStream(in) : in, UTF_8));
this.from = from;
this.to = to;
@@ -252,6 +253,7 @@ class LogReader {
.toInstant()
.plus(Duration.ofSeconds(1));
}
+ // TODO: accept .zst files when the io.airlift library supports streamed input.
throw new IllegalArgumentException("Unrecognized file pattern for file at '" + path + "'");
}
diff --git a/vespajlib/src/main/java/com/yahoo/compress/ZstdCompressor.java b/vespajlib/src/main/java/com/yahoo/compress/ZstdCompressor.java
index 004c1d2a017..29a58dbde47 100644
--- a/vespajlib/src/main/java/com/yahoo/compress/ZstdCompressor.java
+++ b/vespajlib/src/main/java/com/yahoo/compress/ZstdCompressor.java
@@ -28,7 +28,7 @@ public class ZstdCompressor {
/**
* Note:
* Implementation assumes single frame (since {@link #getDecompressedLength(byte[], int, int)} only includes the first frame)
- * The {@link #decompress(byte[], int, int, byte[], int, int)} overload will try to decompress all frame, causing the output buffer to overflow.
+ * The {@link #decompress(byte[], int, int, byte[], int, int)} overload will try to decompress all frames, causing the output buffer to overflow.
*/
public byte[] decompress(byte[] input, int inputOffset, int inputLength) {
int decompressedLength = getDecompressedLength(input, inputOffset, inputLength);
@@ -48,4 +48,5 @@ public class ZstdCompressor {
public static int getDecompressedLength(byte[] input, int inputOffset, int inputLength) {
return (int) io.airlift.compress.zstd.ZstdDecompressor.getDecompressedSize(input, inputOffset, inputLength);
}
+
}
diff --git a/vespajlib/src/main/java/com/yahoo/compress/ZstdOutputStream.java b/vespajlib/src/main/java/com/yahoo/compress/ZstdOutputStream.java
index f439ee03ea6..2952195b224 100644
--- a/vespajlib/src/main/java/com/yahoo/compress/ZstdOutputStream.java
+++ b/vespajlib/src/main/java/com/yahoo/compress/ZstdOutputStream.java
@@ -38,7 +38,6 @@ public class ZstdOutputStream extends OutputStream {
@Override
public void write(byte[] b) throws IOException {
- throwIfClosed();
write(b, 0, b.length);
}