From 55427fb66c6d52ce98b4d68a29b592a734014c28 Mon Sep 17 00:00:00 2001 From: Harsh J Date: Sun, 23 Sep 2012 10:37:52 +0000 Subject: [PATCH] HADOOP-8151. Error handling in snappy decompressor throws invalid exceptions. Contributed by Matt Foley. (harsh) git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1389006 13f79535-47bb-0310-9956-ffa450edef68 (cherry picked from commit ac31d6a4485d7ff9074fb5dade7a6cf5292bb347) Conflicts: hadoop-common-project/hadoop-common/CHANGES.txt --- hadoop-common-project/hadoop-common/CHANGES.txt | 5 ++++- .../src/org/apache/hadoop/io/compress/lz4/Lz4Compressor.c | 2 +- .../src/org/apache/hadoop/io/compress/lz4/Lz4Decompressor.c | 2 +- .../org/apache/hadoop/io/compress/snappy/SnappyCompressor.c | 4 ++-- .../apache/hadoop/io/compress/snappy/SnappyDecompressor.c | 6 +++--- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index ed3e5f04be5..8c02f27b76b 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -383,7 +383,10 @@ Release 2.8.0 - UNRELEASED (Brahma Reddy Battula via aajisaka) HADOOP-12076. Incomplete Cache Mechanism in CredentialProvider API. - (Larry McCay via cnauroth) + (Larry McCay via cnauroth) + + HADOOP-8151. Error handling in snappy decompressor throws invalid + exceptions. (Matt Foley via harsh) Release 2.7.1 - UNRELEASED diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/lz4/Lz4Compressor.c b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/lz4/Lz4Compressor.c index b8f8276fce6..f742384efc7 100644 --- a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/lz4/Lz4Compressor.c +++ b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/lz4/Lz4Compressor.c @@ -75,7 +75,7 @@ JNIEXPORT jint JNICALL Java_org_apache_hadoop_io_compress_lz4_Lz4Compressor_comp compressed_direct_buf_len = LZ4_compress(uncompressed_bytes, compressed_bytes, uncompressed_direct_buf_len); if (compressed_direct_buf_len < 0){ - THROW(env, "Ljava/lang/InternalError", "LZ4_compress failed"); + THROW(env, "java/lang/InternalError", "LZ4_compress failed"); } (*env)->SetIntField(env, thisj, Lz4Compressor_uncompressedDirectBufLen, 0); diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/lz4/Lz4Decompressor.c b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/lz4/Lz4Decompressor.c index 38f6b90d354..cdeaa315d1e 100644 --- a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/lz4/Lz4Decompressor.c +++ b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/lz4/Lz4Decompressor.c @@ -72,7 +72,7 @@ JNIEXPORT jint JNICALL Java_org_apache_hadoop_io_compress_lz4_Lz4Decompressor_de uncompressed_direct_buf_len = LZ4_decompress_safe(compressed_bytes, uncompressed_bytes, compressed_direct_buf_len, uncompressed_direct_buf_len); if (uncompressed_direct_buf_len < 0) { - THROW(env, "Ljava/lang/InternalError", "LZ4_uncompress_unknownOutputSize failed."); + THROW(env, "java/lang/InternalError", "LZ4_uncompress_unknownOutputSize failed."); } (*env)->SetIntField(env, thisj, Lz4Decompressor_compressedDirectBufLen, 0); diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.c b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.c index d8800afcc12..9a09f078d82 100644 --- a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.c +++ b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.c @@ -126,11 +126,11 @@ JNIEXPORT jint JNICALL Java_org_apache_hadoop_io_compress_snappy_SnappyCompresso ret = dlsym_snappy_compress(uncompressed_bytes, uncompressed_direct_buf_len, compressed_bytes, &buf_len); if (ret != SNAPPY_OK){ - THROW(env, "Ljava/lang/InternalError", "Could not compress data. Buffer length is too small."); + THROW(env, "java/lang/InternalError", "Could not compress data. Buffer length is too small."); return 0; } if (buf_len > JINT_MAX) { - THROW(env, "Ljava/lang/InternalError", "Invalid return buffer length."); + THROW(env, "java/lang/InternalError", "Invalid return buffer length."); return 0; } diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/snappy/SnappyDecompressor.c b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/snappy/SnappyDecompressor.c index 0f2b7c0dfdd..69ec1017526 100644 --- a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/snappy/SnappyDecompressor.c +++ b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/snappy/SnappyDecompressor.c @@ -118,11 +118,11 @@ JNIEXPORT jint JNICALL Java_org_apache_hadoop_io_compress_snappy_SnappyDecompres ret = dlsym_snappy_uncompress(compressed_bytes, compressed_direct_buf_len, uncompressed_bytes, &uncompressed_direct_buf_len); if (ret == SNAPPY_BUFFER_TOO_SMALL){ - THROW(env, "Ljava/lang/InternalError", "Could not decompress data. Buffer length is too small."); + THROW(env, "java/lang/InternalError", "Could not decompress data. Buffer length is too small."); } else if (ret == SNAPPY_INVALID_INPUT){ - THROW(env, "Ljava/lang/InternalError", "Could not decompress data. Input is invalid."); + THROW(env, "java/lang/InternalError", "Could not decompress data. Input is invalid."); } else if (ret != SNAPPY_OK){ - THROW(env, "Ljava/lang/InternalError", "Could not decompress data."); + THROW(env, "java/lang/InternalError", "Could not decompress data."); } (*env)->SetIntField(env, thisj, SnappyDecompressor_compressedDirectBufLen, 0);