hadoop-connectors/gcsio:HttpResponseException创建未设置消息问题
问题:HttpResponseException创建时未设置消息导致异常信息输出为null
GoogleCloudStorageExceptions.java文件中存在如下问题:
HttpResponseException在创建时未正确设置消息,导致从服务器接收的异常无法打印任何有效信息,最终输出为null。
public static GoogleJsonResponseException createJsonResponseException( GoogleJsonError e, HttpHeaders responseHeaders) { if (e != null) { // 问题:下方的HttpResponseException.Builder()构造函数未设置HttpResponseException.Builder.message。 // HttpResponseException.Builder.message会被传入Throwable.detailMessage,该信息会在Throwable.toString()中打印。 // 导致从服务器接收的异常无法打印任何信息,输出为:null。 return new GoogleJsonResponseException( new HttpResponseException.Builder(e.getCode(), e.getMessage(), responseHeaders), e); } return null; }
问题核心:
HttpResponseException.Builder的message字段会被映射到Throwable.detailMessage,而当前代码的构造方式并未正确完成这个赋值。- 最终调用
Throwable.toString()输出异常时,只会显示null,完全丢失了服务器返回的异常详情。
内容的提问来源于stack exchange,提问作者Sam Mesh
相关产品推荐
相关产品推荐

