Excel download error - AccessDeniedException: /.jmix

While I am trying to download through standard excel export button with dataGrid, I am getting error when the number of rows is more than 500. How can I resolve this problem, thanks for any suggestions.

java.nio.file.AccessDeniedException: /.jmix

at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)

at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)

at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)

at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:398)

at java.base/java.nio.file.Files.createDirectory(Files.java:700)

at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:807)

at java.base/java.nio.file.Files.createDirectories(Files.java:793)

at org.apache.commons.io.file.PathUtils.createParentDirectories(PathUtils.java:400)

at org.apache.commons.io.file.PathUtils.newOutputStream(PathUtils.java:1221)

at org.apache.commons.io.file.PathUtils.newOutputStream(PathUtils.java:1216)

at org.apache.commons.io.FileUtils.newOutputStream(FileUtils.java:2479)

at org.apache.commons.io.FileUtils.writeByteArrayToFile(FileUtils.java:3309)

at org.apache.commons.io.FileUtils.writeByteArrayToFile(FileUtils.java:3275)

at org.apache.commons.io.FileUtils.writeByteArrayToFile(FileUtils.java:3261)

at io.jmix.flowui.download.ByteArrayDownloadDataProvider.saveToTempStorage(ByteArrayDownloadDataProvider.java:68)

at io.jmix.flowui.download.ByteArrayDownloadDataProvider.\<init\>(ByteArrayDownloadDataProvider.java:54)

at io.jmix.gridexportflowui.exporter.excel.ExcelExporter.exportDataGrid(ExcelExporter.java:269)

at io.jmix.gridexportflowui.action.ExportAction.doExport(ExportAction.java:204)

at io.jmix.gridexportflowui.action.ExportAction.lambda$createExportAllAction$1(ExportAction.java:223)

at io.jmix.flowui.kit.event.EventBus.fireEvent(EventBus.java:82)

at io.jmix.flowui.kit.action.BaseAction.actionPerform(BaseAction.java:67)

at io.jmix.flowui.impl.DialogsImpl.lambda$createButton$be7404f0$1(DialogsImpl.java:124)

at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:239)

at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:488)

at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:298)

at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:447)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:447)

at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:62)

at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:74)

at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:475)

at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$5(ServerRpcHandler.java:456)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:456)

at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:324)

at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)

at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)

at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1577)

at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)

at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:106)

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:642)

at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:408)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:313)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:277)

at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:142)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:178)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:51)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at io.jmix.core.impl.logging.LogMdcFilter.doFilterInternal(LogMdcFilter.java:28)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)

at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)

at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)

at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:110)

at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:151)

at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:129)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)

at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)

at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)

at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)

at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)

at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)

at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)

at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)

at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)

at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:124)

at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:99)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:117)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)

at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.base/java.lang.Thread.run(Thread.java:833)

Try to either increase the value in jmix.ui.save-exported-byte-array-data-threshold-bytes property to prevent storing temporary file on download, or change the location of the temporary directory using the jmix.core.temp-dir property.

Regards,
Konstantin

Thank you so much Konstantin.