Hi Ivan, David and Tomer,

PR : https://github.com/apache/fineract/pull/711 from Tomer Moshe merged
into Fineract Develop branch.

Thanks for reporting this issue and for sending in the PR. We hope for more
contributions in the future.

---
Awasum

On Thu, Feb 6, 2020 at 7:48 AM Ivan Bondarenko <[email protected]> wrote:

> Hi David.
>
> It looks fine.
> Thank you for PR.
>
> Guys, could you merge these changes to  develop?
>
> Thanks,
> Ivan
>
> ср, 5 февр. 2020 г. в 11:55, David Yahalomi <[email protected]>:
>
>> Hey Ivan,
>>
>> The PR opened by Tomer is ready:
>> https://github.com/apache/fineract/pull/711.
>>
>> Thanks ahead,
>>
>> David Yahalomi
>> Co-Founder
>>
>> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
>> mobile: + 972 52 817 9787
>> email: [email protected]
>>   <https://articode.co>
>>
>> ᐧ
>>
>> On Thu, Jan 30, 2020 at 3:17 PM David Yahalomi <[email protected]> wrote:
>>
>>> Thanks Ivan!
>>> It worked great!
>>>
>>> Tomer, my teammate will PR asap.
>>>
>>> Best,
>>> David Yahalomi
>>> Co-Founder
>>>
>>> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
>>> mobile: + 972 52 817 9787
>>> email: [email protected]
>>>   <https://articode.co>
>>>
>>> ᐧ
>>>
>>> On Thu, Jan 30, 2020 at 10:52 AM Ivan Bondarenko <[email protected]>
>>> wrote:
>>>
>>>> Hi David!
>>>>
>>>> You need to make AbstractPersistableCustom Serializable.
>>>>
>>>> In other words:
>>>>
>>>> ... AbstractPersistableCustom implements Serializable ...
>>>>
>>>> And run with clean DB.
>>>>
>>>> The issue is in AppUser desiarilization I gess .
>>>>
>>>> If it works, create PR, please.
>>>>
>>>> Ivan
>>>>
>>>>
>>>>
>>>> чт, 30 янв. 2020 г. в 10:42, David Yahalomi <[email protected]>:
>>>>
>>>>> Hey Ivan,
>>>>>
>>>>> Thanks for replying!
>>>>> We've used the oauth option.
>>>>>
>>>>> The stacktrace as printed in catalina.out:
>>>>>
>>>>>  at
>>>>> org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371)
>>>>> at
>>>>> org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:128)
>>>>> at
>>>>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
>>>>> at
>>>>> org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
>>>>> at
>>>>> org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
>>>>> at
>>>>> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:144)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$ExposeRepositoryInvocationInterceptor.invoke(CrudMethodMetadataPostProcessor.java:364)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
>>>>> at org.apache.fineract.portfolio.client.domain.$Proxy239.save(Unknown
>>>>> Source)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper.save(ClientRepositoryWrapper.java:67)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper$$FastClassBySpringCGLIB$$a54487b3.invoke(<generated>)
>>>>> at
>>>>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>>>>> at
>>>>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper$$EnhancerBySpringCGLIB$$eb415882.save(<generated>)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.service.ClientWritePlatformServiceJpaRepositoryImpl.createClient(ClientWritePlatformServiceJpaRepositoryImpl.java:306)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.service.ClientWritePlatformServiceJpaRepositoryImpl$$FastClassBySpringCGLIB$$71ca1b7f.invoke(<generated>)
>>>>> at
>>>>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>>>>> at
>>>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
>>>>> at
>>>>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
>>>>> at
>>>>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.service.ClientWritePlatformServiceJpaRepositoryImpl$$EnhancerBySpringCGLIB$$bb56d366.createClient(<generated>)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.handler.CreateClientCommandHandler.processCommand(CreateClientCommandHandler.java:45)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.handler.CreateClientCommandHandler$$FastClassBySpringCGLIB$$6bce1ca9.invoke(<generated>)
>>>>> at
>>>>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>>>>> at
>>>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
>>>>> at
>>>>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
>>>>> at
>>>>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.handler.CreateClientCommandHandler$$EnhancerBySpringCGLIB$$deefe124.processCommand(<generated>)
>>>>> at
>>>>> org.apache.fineract.commands.service.SynchronousCommandProcessingService.processAndLogCommand(SynchronousCommandProcessingService.java:83)
>>>>> at
>>>>> org.apache.fineract.commands.service.SynchronousCommandProcessingService$$FastClassBySpringCGLIB$$ec92d53f.invoke(<generated>)
>>>>> at
>>>>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>>>>> at
>>>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
>>>>> at
>>>>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
>>>>> at
>>>>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
>>>>> at
>>>>> org.apache.fineract.commands.service.SynchronousCommandProcessingService$$EnhancerBySpringCGLIB$$431318a6.processAndLogCommand(<generated>)
>>>>> at
>>>>> org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformServiceImpl.logCommandSource(PortfolioCommandSourceWritePlatformServiceImpl.java:98)
>>>>> at
>>>>> org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformServiceImpl$$FastClassBySpringCGLIB$$31c15082.invoke(<generated>)
>>>>> at
>>>>> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>>>>> at
>>>>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
>>>>> at
>>>>> org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformServiceImpl$$EnhancerBySpringCGLIB$$9bb82c4f.logCommandSource(<generated>)
>>>>> at
>>>>> org.apache.fineract.portfolio.client.api.ClientsApiResource.create(ClientsApiResource.java:223)
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>> at
>>>>> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
>>>>> at
>>>>> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
>>>>> at
>>>>> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
>>>>> at
>>>>> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
>>>>> at
>>>>> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
>>>>> at
>>>>> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
>>>>> at
>>>>> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
>>>>> at
>>>>> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
>>>>> at
>>>>> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
>>>>> at
>>>>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
>>>>> at
>>>>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
>>>>> at
>>>>> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
>>>>> at
>>>>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
>>>>> at
>>>>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
>>>>> at
>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
>>>>> at
>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
>>>>> at
>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
>>>>> at
>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.apache.fineract.infrastructure.security.filter.InsecureTwoFactorAuthenticationFilter.doFilter(InsecureTwoFactorAuthenticationFilter.java:80)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
>>>>> 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.apache.fineract.infrastructure.security.filter.TenantAwareTenantIdentifierFilter.doFilter(TenantAwareTenantIdentifierFilter.java:146)
>>>>> 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:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.apache.fineract.infrastructure.security.filter.TenantAwareTenantIdentifierFilter.doFilter(TenantAwareTenantIdentifierFilter.java:146)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:88)
>>>>> at
>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
>>>>> at
>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
>>>>> at
>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.apache.fineract.infrastructure.security.filter.InsecureTwoFactorAuthenticationFilter.doFilter(InsecureTwoFactorAuthenticationFilter.java:80)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
>>>>> at
>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
>>>>> at
>>>>> org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
>>>>> 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.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.apache.fineract.infrastructure.security.filter.TenantAwareTenantIdentifierFilter.doFilter(TenantAwareTenantIdentifierFilter.java:146)
>>>>> 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:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:128)
>>>>> at
>>>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66)
>>>>> at
>>>>> org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:103)
>>>>> at
>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>>>> at
>>>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:121)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:114)
>>>>> at
>>>>> org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:104)
>>>>> at
>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> 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:241)
>>>>> at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>> at
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
>>>>> at
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
>>>>> at
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
>>>>> at
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>> at
>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
>>>>> at
>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>>>>> at
>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
>>>>> at
>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
>>>>> at
>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
>>>>> at
>>>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
>>>>> at
>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>>>> at
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>>>> at
>>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>>>> at java.lang.Thread.run(Thread.java:748)
>>>>> Caused by: org.apache.openjpa.persistence.InvalidStateException:
>>>>> Encountered unmanaged object
>>>>> "org.apache.fineract.useradministration.domain.AppUser@6449368b" in
>>>>> life cycle state  unmanaged while cascading persistence via field
>>>>> "org.apache.fineract.portfolio.client.domain.Client.submittedBy" during
>>>>> flush.  However, this field does not allow cascade persist. You cannot
>>>>> flush unmanaged objects or graphs that have persistent associations to
>>>>> unmanaged objects.
>>>>>  Suggested actions: a) Set the cascade attribute for this field to
>>>>> CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or "persist" or
>>>>> "all" (JPA orm.xml),
>>>>>  b) enable cascade-persist globally,
>>>>>  c) manually persist the related field value prior to flushing.
>>>>>  d) if the reference belongs to another context, allow reference to it
>>>>> by setting StoreContext.setAllowReferenceToSiblingContext().
>>>>> at
>>>>> org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(SingleFieldManager.java:789)
>>>>> at
>>>>> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:624)
>>>>> at
>>>>> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:592)
>>>>> at
>>>>> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:513)
>>>>> at
>>>>> org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:3189)
>>>>> at org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:44)
>>>>> at
>>>>> org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1111)
>>>>> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2239)
>>>>> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2199)
>>>>> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1962)
>>>>> at
>>>>> org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:618)
>>>>> at
>>>>> org.apache.openjpa.kernel.StateManagerImpl.assignField(StateManagerImpl.java:705)
>>>>> at
>>>>> org.apache.openjpa.kernel.StateManagerImpl.beforeAccessField(StateManagerImpl.java:1750)
>>>>> at
>>>>> org.apache.openjpa.kernel.StateManagerImpl.accessingField(StateManagerImpl.java:1679)
>>>>> at
>>>>> org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom.pcGetid(AbstractPersistableCustom.java)
>>>>> at
>>>>> org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom.isNew(AbstractPersistableCustom.java:50)
>>>>> at
>>>>> org.springframework.data.jpa.repository.support.JpaPersistableEntityInformation.isNew(JpaPersistableEntityInformation.java:49)
>>>>> at
>>>>> org.springframework.data.jpa.repository.support.JpaPersistableEntityInformation.isNew(JpaPersistableEntityInformation.java:30)
>>>>> at
>>>>> org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:534)
>>>>> at sun.reflect.GeneratedMethodAccessor141.invoke(Unknown Source)
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>>>> at
>>>>> org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:359)
>>>>> at
>>>>> org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200)
>>>>> at
>>>>> org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:644)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:608)
>>>>> at
>>>>> org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595)
>>>>> at
>>>>> org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
>>>>> at
>>>>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
>>>>> at
>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>>>> at
>>>>> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
>>>>> ... 183 common frames omitted
>>>>>
>>>>> Currently trying to debug the process locally. Will let you know if
>>>>> something comes up.
>>>>>
>>>>> Thanks again,
>>>>>
>>>>> David Yahalomi
>>>>> Co-Founder
>>>>>
>>>>> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
>>>>> mobile: + 972 52 817 9787
>>>>> email: [email protected]
>>>>>   <https://articode.co>
>>>>>
>>>>> ᐧ
>>>>>
>>>>> On Wed, Jan 29, 2020 at 9:54 PM Ivan Bondarenko <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hello David!
>>>>>>
>>>>>> Could you provide full stacktrace?
>>>>>> Do you use basic or oauth authentication?
>>>>>>
>>>>>> Could you try following: "AbstractPersistableCustom implements
>>>>>> Serializable"?
>>>>>>
>>>>>> Ivan
>>>>>>
>>>>>> ср, 29 янв. 2020 г. в 20:26, David Yahalomi <[email protected]>:
>>>>>>
>>>>>>> Hey there,
>>>>>>>
>>>>>>> We've tried using Fineract 1.4 release tag and got this exception
>>>>>>> while trying to create a new entity (tried user, client, glaccount and
>>>>>>> office) on a new clean database:
>>>>>>>
>>>>>>> org.apache.openjpa.persistence.InvalidStateException: Encountered
>>>>>>> unmanaged object
>>>>>>> "org.apache.fineract.useradministration.domain.AppUser@3ac92522" in
>>>>>>> life cycle state  unmanaged while cascading persistence via field 
>>>>>>> "org.apach
>>>>>>> e.fineract.portfolio.client.domain.Client.submittedBy" during
>>>>>>> flush.  However, this field does not allow cascade persist. You cannot
>>>>>>> flush unmanaged objects or graphs that have persistent associations to
>>>>>>> unmanaged objects.
>>>>>>>  Suggested actions: a) Set the cascade attribute for this field to
>>>>>>> CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or "persist" or
>>>>>>> "all" (JPA orm.xml),
>>>>>>>  b) enable cascade-persist globally,
>>>>>>>  c) manually persist the related field value prior to flushing.
>>>>>>>  d) if the reference belongs to another context, allow reference to
>>>>>>> it by setting StoreContext.setAllowReferenceToSiblingContext().
>>>>>>>
>>>>>>> Has anyone experienced the same?
>>>>>>>
>>>>>>> Thanks ahead,
>>>>>>>
>>>>>>> David Yahalomi
>>>>>>> Co-Founder
>>>>>>>
>>>>>>> Rothschild Blvd 3, Tel Aviv-Yafo, Israel
>>>>>>> mobile: + 972 52 817 9787
>>>>>>> email: [email protected]
>>>>>>>   <https://articode.co>
>>>>>>> ᐧ
>>>>>>>
>>>>>>

Reply via email to