[ 
https://issues.apache.org/jira/browse/FINERACT-1037?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Vorburger updated FINERACT-1037:
----------------------------------------
    Description: 
See FINERACT-932 for general background; I'm currently seeing this in logs of 
https://www.fineract.dev:

{noformat}java.io.FileNotFoundException: 
/home/tomcat/.fineract/DefaultDemoTenant/documents/CLIENTS_PERSON/null/sf5694ypszb/CLIENTS_PERSON2020-05-06
 (1).xls (No such file or directory)

        at java.io.FileInputStream.open0 (Native Method)
        at java.io.FileInputStream.open (FileInputStream.java:219)
        at java.io.FileInputStream.<init> (FileInputStream.java:157)
        at com.sun.jersey.core.impl.provider.entity.FileProvider.writeTo 
(FileProvider.java:101)
        at com.sun.jersey.core.impl.provider.entity.FileProvider.writeTo 
(FileProvider.java:64)
        at com.sun.jersey.spi.container.ContainerResponse.write 
(ContainerResponse.java:302)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest 
(WebApplicationImpl.java:1510)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest 
(WebApplicationImpl.java:1419)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest 
(WebApplicationImpl.java:1409)
        at com.sun.jersey.spi.container.servlet.WebComponent.service 
(WebComponent.java:409)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service 
(ServletContainer.java:558)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service 
(ServletContainer.java:733)
        at javax.servlet.http.HttpServlet.service (HttpServlet.java:741)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter 
(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
 (FilterSecurityInterceptor.java:115)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
 (FilterSecurityInterceptor.java:90)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:320)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
 (FilterSecurityInterceptor.java:115)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
 (FilterSecurityInterceptor.java:90)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter 
(ExceptionTranslationFilter.java:118)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter
 (AnonymousAuthenticationFilter.java:111)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter
 (SecurityContextHolderAwareRequestFilter.java:158)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.apache.fineract.infrastructure.security.filter.InsecureTwoFactorAuthenticationFilter.doFilter
 (InsecureTwoFactorAuthenticationFilter.java:78)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:113)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:113)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:113)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter
 (SecurityContextPersistenceFilter.java:82)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter
 (ChannelProcessingFilter.java:157)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal 
(FilterChainProxy.java:215)
        at org.springframework.security.web.FilterChainProxy.doFilter 
(FilterChainProxy.java:186)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:320)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
 (FilterSecurityInterceptor.java:126)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
 (FilterSecurityInterceptor.java:90)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter 
(ExceptionTranslationFilter.java:118)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter
 (AnonymousAuthenticationFilter.java:111)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter
 (SecurityContextHolderAwareRequestFilter.java:158)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.apache.fineract.infrastructure.security.filter.InsecureTwoFactorAuthenticationFilter.doFilter
 (InsecureTwoFactorAuthenticationFilter.java:78)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter 
(HeaderWriterFilter.java:92)
        at 
org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal 
(HeaderWriterFilter.java:77)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal
 (WebAsyncManagerIntegrationFilter.java:56)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal
 (BasicAuthenticationFilter.java:204)
        at 
org.apache.fineract.infrastructure.security.filter.TenantAwareBasicAuthenticationFilter.doFilterInternal
 (TenantAwareBasicAuthenticationFilter.java:145)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter
 (SecurityContextPersistenceFilter.java:105)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter
 (ChannelProcessingFilter.java:157)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal 
(FilterChainProxy.java:215)
        at org.springframework.security.web.FilterChainProxy.doFilter 
(FilterChainProxy.java:178)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate 
(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter 
(DelegatingFilterProxy.java:271)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal
 (WebMvcMetricsFilter.java:109)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal 
(CharacterEncodingFilter.java:201)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal 
(ForwardedHeaderFilter.java:158)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke 
(StandardWrapperValve.java:202)
        at org.apache.catalina.core.StandardContextValve.invoke 
(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke 
(AuthenticatorBase.java:541)
        at org.apache.catalina.core.StandardHostValve.invoke 
(StandardHostValve.java:139)
        at org.apache.catalina.valves.ErrorReportValve.invoke 
(ErrorReportValve.java:92)
        at org.apache.catalina.core.StandardEngineValve.invoke 
(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service 
(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service 
(Http11Processor.java:373)
        at org.apache.coyote.AbstractProcessorLight.process 
(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process 
(AbstractProtocol.java:868)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun 
(NioEndpoint.java:1590)
        at org.apache.tomcat.util.net.SocketProcessorBase.run 
(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker 
(ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run 
(ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run 
(TaskThread.java:61)
        at java.lang.Thread.run (Thread.java:834){noformat}

The stack trace doesn't make it super clear exactly where in Fineract this is 
coming from... 

If I had to guess, it would be that we have a (or several?) REST Resource 
classes that accept a POST file upload ("multi-part" ?) and attempts to write 
it into a directory which... perhaps does not exist? Something somewhere should 
have created the missing parent directories?

  was:
See FINERACT-932 for general background; I'm currently seeing this in logs of 
https://www.fineract.dev:

{noformat}java.io.FileNotFoundException: 
/home/tomcat/.fineract/DefaultDemoTenant/documents/CLIENTS_PERSON/null/sf5694ypszb/CLIENTS_PERSON2020-05-06
 (1).xls (No such file or directory)

        at java.io.FileInputStream.open0 (Native Method)
        at java.io.FileInputStream.open (FileInputStream.java:219)
        at java.io.FileInputStream.<init> (FileInputStream.java:157)
        at com.sun.jersey.core.impl.provider.entity.FileProvider.writeTo 
(FileProvider.java:101)
        at com.sun.jersey.core.impl.provider.entity.FileProvider.writeTo 
(FileProvider.java:64)
        at com.sun.jersey.spi.container.ContainerResponse.write 
(ContainerResponse.java:302)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest 
(WebApplicationImpl.java:1510)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest 
(WebApplicationImpl.java:1419)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest 
(WebApplicationImpl.java:1409)
        at com.sun.jersey.spi.container.servlet.WebComponent.service 
(WebComponent.java:409)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service 
(ServletContainer.java:558)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service 
(ServletContainer.java:733)
        at javax.servlet.http.HttpServlet.service (HttpServlet.java:741)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter 
(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
 (FilterSecurityInterceptor.java:115)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
 (FilterSecurityInterceptor.java:90)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:320)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
 (FilterSecurityInterceptor.java:115)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
 (FilterSecurityInterceptor.java:90)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter 
(ExceptionTranslationFilter.java:118)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter
 (AnonymousAuthenticationFilter.java:111)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter
 (SecurityContextHolderAwareRequestFilter.java:158)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.apache.fineract.infrastructure.security.filter.InsecureTwoFactorAuthenticationFilter.doFilter
 (InsecureTwoFactorAuthenticationFilter.java:78)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:113)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:113)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:113)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter
 (SecurityContextPersistenceFilter.java:82)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter
 (ChannelProcessingFilter.java:157)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal 
(FilterChainProxy.java:215)
        at org.springframework.security.web.FilterChainProxy.doFilter 
(FilterChainProxy.java:186)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:320)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
 (FilterSecurityInterceptor.java:126)
        at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
 (FilterSecurityInterceptor.java:90)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter 
(ExceptionTranslationFilter.java:118)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter
 (AnonymousAuthenticationFilter.java:111)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter
 (SecurityContextHolderAwareRequestFilter.java:158)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.apache.fineract.infrastructure.security.filter.InsecureTwoFactorAuthenticationFilter.doFilter
 (InsecureTwoFactorAuthenticationFilter.java:78)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter 
(HeaderWriterFilter.java:92)
        at 
org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal 
(HeaderWriterFilter.java:77)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal
 (WebAsyncManagerIntegrationFilter.java:56)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal
 (BasicAuthenticationFilter.java:204)
        at 
org.apache.fineract.infrastructure.security.filter.TenantAwareBasicAuthenticationFilter.doFilterInternal
 (TenantAwareBasicAuthenticationFilter.java:145)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter
 (SecurityContextPersistenceFilter.java:105)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at 
org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter
 (ChannelProcessingFilter.java:157)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
(FilterChainProxy.java:334)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal 
(FilterChainProxy.java:215)
        at org.springframework.security.web.FilterChainProxy.doFilter 
(FilterChainProxy.java:178)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate 
(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter 
(DelegatingFilterProxy.java:271)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal
 (WebMvcMetricsFilter.java:109)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal 
(CharacterEncodingFilter.java:201)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at 
org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal 
(ForwardedHeaderFilter.java:158)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter 
(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke 
(StandardWrapperValve.java:202)
        at org.apache.catalina.core.StandardContextValve.invoke 
(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke 
(AuthenticatorBase.java:541)
        at org.apache.catalina.core.StandardHostValve.invoke 
(StandardHostValve.java:139)
        at org.apache.catalina.valves.ErrorReportValve.invoke 
(ErrorReportValve.java:92)
        at org.apache.catalina.core.StandardEngineValve.invoke 
(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service 
(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service 
(Http11Processor.java:373)
        at org.apache.coyote.AbstractProcessorLight.process 
(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process 
(AbstractProtocol.java:868)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun 
(NioEndpoint.java:1590)
        at org.apache.tomcat.util.net.SocketProcessorBase.run 
(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker 
(ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run 
(ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run 
(TaskThread.java:61)
        at java.lang.Thread.run (Thread.java:834){noformat}

The stack trace doesn't make it super clear exactly where in Fineract this is 
coming from... presumably this is REST Resource that accepts a POST file upload 
("multi-part" ?) and attempts to write it into a directory which... perhaps 
does not exist? Something somewhere should have created the missing parent 
directories?


> FileNotFoundException: 
> /home/tomcat/.fineract/DefaultDemoTenant/documents/CLIENTS_PERSON/null/sf5694ypszb/something.xls
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: FINERACT-1037
>                 URL: https://issues.apache.org/jira/browse/FINERACT-1037
>             Project: Apache Fineract
>          Issue Type: Bug
>            Reporter: Michael Vorburger
>            Priority: Blocker
>
> See FINERACT-932 for general background; I'm currently seeing this in logs of 
> https://www.fineract.dev:
> {noformat}java.io.FileNotFoundException: 
> /home/tomcat/.fineract/DefaultDemoTenant/documents/CLIENTS_PERSON/null/sf5694ypszb/CLIENTS_PERSON2020-05-06
>  (1).xls (No such file or directory)
>         at java.io.FileInputStream.open0 (Native Method)
>         at java.io.FileInputStream.open (FileInputStream.java:219)
>         at java.io.FileInputStream.<init> (FileInputStream.java:157)
>         at com.sun.jersey.core.impl.provider.entity.FileProvider.writeTo 
> (FileProvider.java:101)
>         at com.sun.jersey.core.impl.provider.entity.FileProvider.writeTo 
> (FileProvider.java:64)
>         at com.sun.jersey.spi.container.ContainerResponse.write 
> (ContainerResponse.java:302)
>         at 
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest 
> (WebApplicationImpl.java:1510)
>         at 
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest 
> (WebApplicationImpl.java:1419)
>         at 
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest 
> (WebApplicationImpl.java:1409)
>         at com.sun.jersey.spi.container.servlet.WebComponent.service 
> (WebComponent.java:409)
>         at com.sun.jersey.spi.container.servlet.ServletContainer.service 
> (ServletContainer.java:558)
>         at com.sun.jersey.spi.container.servlet.ServletContainer.service 
> (ServletContainer.java:733)
>         at javax.servlet.http.HttpServlet.service (HttpServlet.java:741)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:231)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:166)
>         at org.apache.tomcat.websocket.server.WsFilter.doFilter 
> (WsFilter.java:53)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:193)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:166)
>         at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
>  (FilterSecurityInterceptor.java:115)
>         at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
>  (FilterSecurityInterceptor.java:90)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:193)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:166)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:320)
>         at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
>  (FilterSecurityInterceptor.java:115)
>         at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
>  (FilterSecurityInterceptor.java:90)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter 
> (ExceptionTranslationFilter.java:118)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter
>  (AnonymousAuthenticationFilter.java:111)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter
>  (SecurityContextHolderAwareRequestFilter.java:158)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.apache.fineract.infrastructure.security.filter.InsecureTwoFactorAuthenticationFilter.doFilter
>  (InsecureTwoFactorAuthenticationFilter.java:78)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:113)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:113)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:113)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter
>  (SecurityContextPersistenceFilter.java:82)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter
>  (ChannelProcessingFilter.java:157)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at org.springframework.security.web.FilterChainProxy.doFilterInternal 
> (FilterChainProxy.java:215)
>         at org.springframework.security.web.FilterChainProxy.doFilter 
> (FilterChainProxy.java:186)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:193)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:166)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:320)
>         at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke
>  (FilterSecurityInterceptor.java:126)
>         at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter
>  (FilterSecurityInterceptor.java:90)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter 
> (ExceptionTranslationFilter.java:118)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter
>  (AnonymousAuthenticationFilter.java:111)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter
>  (SecurityContextHolderAwareRequestFilter.java:158)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.apache.fineract.infrastructure.security.filter.InsecureTwoFactorAuthenticationFilter.doFilter
>  (InsecureTwoFactorAuthenticationFilter.java:78)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter 
> (HeaderWriterFilter.java:92)
>         at 
> org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal 
> (HeaderWriterFilter.java:77)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:119)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal
>  (WebAsyncManagerIntegrationFilter.java:56)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:119)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal
>  (BasicAuthenticationFilter.java:204)
>         at 
> org.apache.fineract.infrastructure.security.filter.TenantAwareBasicAuthenticationFilter.doFilterInternal
>  (TenantAwareBasicAuthenticationFilter.java:145)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:119)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter
>  (SecurityContextPersistenceFilter.java:105)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at 
> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter
>  (ChannelProcessingFilter.java:157)
>         at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter 
> (FilterChainProxy.java:334)
>         at org.springframework.security.web.FilterChainProxy.doFilterInternal 
> (FilterChainProxy.java:215)
>         at org.springframework.security.web.FilterChainProxy.doFilter 
> (FilterChainProxy.java:178)
>         at 
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate 
> (DelegatingFilterProxy.java:358)
>         at org.springframework.web.filter.DelegatingFilterProxy.doFilter 
> (DelegatingFilterProxy.java:271)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:193)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:166)
>         at 
> org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal
>  (WebMvcMetricsFilter.java:109)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:119)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:193)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:166)
>         at 
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal 
> (CharacterEncodingFilter.java:201)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:119)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:193)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:166)
>         at 
> org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal 
> (ForwardedHeaderFilter.java:158)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter 
> (OncePerRequestFilter.java:119)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:193)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:166)
>         at org.apache.catalina.core.StandardWrapperValve.invoke 
> (StandardWrapperValve.java:202)
>         at org.apache.catalina.core.StandardContextValve.invoke 
> (StandardContextValve.java:96)
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke 
> (AuthenticatorBase.java:541)
>         at org.apache.catalina.core.StandardHostValve.invoke 
> (StandardHostValve.java:139)
>         at org.apache.catalina.valves.ErrorReportValve.invoke 
> (ErrorReportValve.java:92)
>         at org.apache.catalina.core.StandardEngineValve.invoke 
> (StandardEngineValve.java:74)
>         at org.apache.catalina.connector.CoyoteAdapter.service 
> (CoyoteAdapter.java:343)
>         at org.apache.coyote.http11.Http11Processor.service 
> (Http11Processor.java:373)
>         at org.apache.coyote.AbstractProcessorLight.process 
> (AbstractProcessorLight.java:65)
>         at org.apache.coyote.AbstractProtocol$ConnectionHandler.process 
> (AbstractProtocol.java:868)
>         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun 
> (NioEndpoint.java:1590)
>         at org.apache.tomcat.util.net.SocketProcessorBase.run 
> (SocketProcessorBase.java:49)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker 
> (ThreadPoolExecutor.java:1128)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run 
> (ThreadPoolExecutor.java:628)
>         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run 
> (TaskThread.java:61)
>         at java.lang.Thread.run (Thread.java:834){noformat}
> The stack trace doesn't make it super clear exactly where in Fineract this is 
> coming from... 
> If I had to guess, it would be that we have a (or several?) REST Resource 
> classes that accept a POST file upload ("multi-part" ?) and attempts to write 
> it into a directory which... perhaps does not exist? Something somewhere 
> should have created the missing parent directories?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to