SenixCoder opened a new issue #2683:
URL: https://github.com/apache/servicecomb-java-chassis/issues/2683
在没有文件要返回时会返回null,但是会抛出NPE
期望是如果返回null的话,不抛出异常
```
[2021-11-29
06:22:16,369]-[6a6ac865149104a4]-[1002]-[group0-1-thread-4]-[org.apache.servicecomb.common.rest.AbstractRestInvocation.onExecuteHttpServerFiltersFinish(AbstractRestInvocation.java:295)]-[ERROR]
Failed to execute HttpServerFilters,
operation:adc-studio-ui.menuExporter.exportItemsByProjectAndModule, request
uri:/adc-studio-ui/cse/rest/v1/menu/menu-exporter/exportItemsByProjectAndModule
java.lang.NullPointerException:
at
org.apache.servicecomb.foundation.vertx.http.DownloadUtils.prepareDownloadHeader(DownloadUtils.java:44)
~[foundation-vertx-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.foundation.vertx.http.StandardHttpServletResponseEx.sendPart(StandardHttpServletResponseEx.java:107)
~[foundation-vertx-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.filter.inner.ServerRestArgsFilter.beforeSendResponseAsync(ServerRestArgsFilter.java:78)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.filter.HttpServerFilterBeforeSendResponseExecutor.safeInvoke(HttpServerFilterBeforeSendResponseExecutor.java:52)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.filter.HttpServerFilterBeforeSendResponseExecutor.doRun(HttpServerFilterBeforeSendResponseExecutor.java:82)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.filter.HttpServerFilterBeforeSendResponseExecutor.run(HttpServerFilterBeforeSendResponseExecutor.java:44)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.AbstractRestInvocation.executeHttpServerFilters(AbstractRestInvocation.java:283)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.AbstractRestInvocation.sendResponse(AbstractRestInvocation.java:277)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.AbstractRestInvocation.sendResponseQuietly(AbstractRestInvocation.java:262)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.AbstractRestInvocation.lambda$doInvoke$2(AbstractRestInvocation.java:245)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
com.huawei.mateinfo.sdk.service.handler.ProviderMetricsHandler.lambda$onResponse$0(ProviderMetricsHandler.java:52)
~[mateinfo-sdk-base-service-2.2.RC1.B015.v1.jar:?]
at
org.apache.servicecomb.tracing.zipkin.ZipkinTracingHandler.lambda$onResponse$0(ZipkinTracingHandler.java:74)
~[handler-tracing-zipkin-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.core.handler.impl.ProducerOperationHandler.syncInvoke(ProducerOperationHandler.java:115)
~[java-chassis-core-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.core.handler.impl.ProducerOperationHandler.invoke(ProducerOperationHandler.java:61)
~[java-chassis-core-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.core.handler.impl.ProducerOperationHandler.handle(ProducerOperationHandler.java:52)
~[java-chassis-core-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at org.apache.servicecomb.core.Invocation.next(Invocation.java:307)
~[java-chassis-core-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.tracing.zipkin.ZipkinTracingHandler.handle(ZipkinTracingHandler.java:52)
~[handler-tracing-zipkin-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.tracing.zipkin.ZipkinProviderTracingHandler.handle(ZipkinProviderTracingHandler.java:24)
~[handler-tracing-zipkin-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at org.apache.servicecomb.core.Invocation.next(Invocation.java:307)
~[java-chassis-core-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
com.huawei.mateinfo.sdk.service.handler.ProviderMetricsHandler.handle(ProviderMetricsHandler.java:41)
~[mateinfo-sdk-base-service-2.2.RC1.B015.v1.jar:?]
at org.apache.servicecomb.core.Invocation.next(Invocation.java:307)
~[java-chassis-core-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.AbstractRestInvocation.doInvoke(AbstractRestInvocation.java:245)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.AbstractRestInvocation.invoke(AbstractRestInvocation.java:219)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.AbstractRestInvocation.runOnExecutor(AbstractRestInvocation.java:203)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
org.apache.servicecomb.common.rest.AbstractRestInvocation.lambda$scheduleInvocation$0(AbstractRestInvocation.java:162)
~[common-rest-2.1.5-h0.gts.dsp.r39.jar:2.1.5-h0.gts.dsp.r39]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_312]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_312]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_312]
```
代码如下:
```
public Part exportItemsByProjectAndModule(String projectName, String
moduleName, ExportConfig exportConfig) {
List<DataPackBo> dpList =
dataPackService.getByProjectNameAndModuleName(projectName, moduleName);
if (CollectionUtils.isEmpty(dpList)) {
return null;
}
File zipFile = dataPackService.export(dpList, projectName);
return new FilePart(null,
zipFile).setDeleteAfterFinished(true).setSubmittedFileName(DATA_PACKAGE_FILE);
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]