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]


Reply via email to