Hi, the issue you are reporting was fixed by commit [1] which will be released as part of Syncope 2.1.11.
Without such fix, the highest version of MySQL JDBC driver you can use is 8.0.22. I would anyway strongly suggest to upgrade your deployment from 2.1.5 (which is 2+ years old and also missing a few security fixes [2]) to 2.1.10 as soon as possible, and also to upgrade to 2.1.11 once such release will be out. Please have a look at 2.1.6 Release Notes [3] (and following) which also contains upgrade instructions from one version to the next one. Regards. [1] https://github.com/apache/syncope/commit/448b053646af39c0b17e85f9c8745aa0d82d503d [2] https://syncope.apache.org/security [3] https://cwiki.apache.org/confluence/display/SYNCOPE/Fusion#Fusion-2.1.6(April29th,2020) On 07/02/22 18:16, ohaya wrote:
Hi, I just found this: https://bugs.mysql.com/bug.php?id=102435 which may explain the problem. If I am reading that thread correctly, it sounds like MySQL made a change in the behavior of their MySQL Java connector in connector V8.0.23 and going forward, which is causing that cast exception, and so whatever code is using that connector version(s), e.g., Syncope in our case, needs to be modified to accommodate the MySQL connector behavior change. As I mentioned earlier, we are on Syncope 2.1.5 now. Is there a later version of Syncope that resolves this problem? Please advise. Thanks, Jim On Monday, February 7, 2022, 12:02:04 PM EST, ohaya <oh...@yahoo.com> wrote: Hi, We upgraded the MySQL on our 2.1.5 Syncope servers this weekend, and upgraded: MySQL Community Server 8.0.25 ==> MySQL Community Server 8.0.28 MySQL Java Connector 8.0.16 ==> MySQL Java Connector 8.0.28 [when we had upgraded previously from MySQL 8.0.16 to MySQL 8.0.25, they forgot to upgrade the connector, so this time we upgraded the connector to 8.0.28 at the same time) However, after that upgrade, when we go into Syncope Console and try to delete users from the Realms==>USERS, we are getting "UNKNOWN" and in the logs: 2022-02-07 14:34:21.638 ERROR org.apache.syncope.core.rest.cxf.RestServiceExceptionMapper - Exception thrown java.lang.ClassCastException: java.time.LocalDateTime cannot be cast to java.util.Date at org.apache.syncope.core.persistence.jpa.dao.AbstractAnyDAO.findLastChange(AbstractAnyDAO.java:144) ~[syncope-core-persistence-jpa-2.1.5.jar:2.1.5] at org.apache.syncope.core.persistence.jpa.dao.JPAUserDAO.findLastChange(JPAUserDAO.java:116) ~[syncope-core-persistence-jpa-2.1.5.jar:2.1.5] at sun.reflect.GeneratedMethodAccessor486.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_321] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_321] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.apache.syncope.core.persistence.jpa.spring.DomainTransactionInterceptor.invoke(DomainTransactionInterceptor.java:60) ~[syncope-core-persistence-jpa-2.1.5.jar:2.1.5] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.9.RELEASE.jar:5.1.9.RELEASE] at com.sun.proxy.$Proxy69.findLastChange(Unknown Source) ~[?:?] at org.apache.syncope.core.rest.cxf.service.AbstractAnyService.findLastChange(AbstractAnyService.java:144) ~[syncope-core-rest-cxf-2.1.5.jar:2.1.5] at org.apache.syncope.core.rest.cxf.service.AbstractAnyService.delete(AbstractAnyService.java:206) ~[syncope-core-rest-cxf-2.1.5.jar:2.1.5] at sun.reflect.GeneratedMethodAccessor485.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_321] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_321] at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[cxf-core-3.2.10.jar:3.2.10] at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[cxf-core-3.2.10.jar:3.2.10] at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[cxf-rt-frontend-jaxrs-3.2.10.jar:3.2.10] at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[cxf-rt-frontend-jaxrs-3.2.10.jar:3.2.10] If we downgrade the MySQL java connector back to 8.0.16, then the delete via Syncope Console works. Can anyone tell me why the Syncope Console doesn't work with the 8.0.28 MySQL Java connector? FYI, we are having to update both the MySQL and the Java connector due to a CVE/security vulnerability. Thanks, Jim
-- Francesco Chicchiriccò Tirasa - Open Source Excellence http://www.tirasa.net/ Member at The Apache Software Foundation Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail http://home.apache.org/~ilgrosso/