提交 59ada925 编写于 作者: I igerasim

8068338: Better message about incompatible zlib in Deflater.init

Reviewed-by: alanb, sherman
上级 4040381c
...@@ -68,10 +68,11 @@ Java_java_util_zip_Deflater_init(JNIEnv *env, jclass cls, jint level, ...@@ -68,10 +68,11 @@ Java_java_util_zip_Deflater_init(JNIEnv *env, jclass cls, jint level,
JNU_ThrowOutOfMemoryError(env, 0); JNU_ThrowOutOfMemoryError(env, 0);
return jlong_zero; return jlong_zero;
} else { } else {
char *msg; const char *msg;
switch (deflateInit2(strm, level, Z_DEFLATED, int ret = deflateInit2(strm, level, Z_DEFLATED,
nowrap ? -MAX_WBITS : MAX_WBITS, nowrap ? -MAX_WBITS : MAX_WBITS,
DEF_MEM_LEVEL, strategy)) { DEF_MEM_LEVEL, strategy);
switch (ret) {
case Z_OK: case Z_OK:
return ptr_to_jlong(strm); return ptr_to_jlong(strm);
case Z_MEM_ERROR: case Z_MEM_ERROR:
...@@ -83,7 +84,11 @@ Java_java_util_zip_Deflater_init(JNIEnv *env, jclass cls, jint level, ...@@ -83,7 +84,11 @@ Java_java_util_zip_Deflater_init(JNIEnv *env, jclass cls, jint level,
JNU_ThrowIllegalArgumentException(env, 0); JNU_ThrowIllegalArgumentException(env, 0);
return jlong_zero; return jlong_zero;
default: default:
msg = strm->msg; msg = ((strm->msg != NULL) ? strm->msg :
(ret == Z_VERSION_ERROR) ?
"zlib returned Z_VERSION_ERROR: "
"compile time and runtime zlib implementations differ" :
"unknown error initializing zlib library");
free(strm); free(strm);
JNU_ThrowInternalError(env, msg); JNU_ThrowInternalError(env, msg);
return jlong_zero; return jlong_zero;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册