[ https://issues.apache.org/jira/browse/OAK-8650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16942030#comment-16942030 ]
Angela Schreiber commented on OAK-8650: --------------------------------------- [~reschke], all 3 tests have in common that they call a 'default' method of the {{PrincipalProvider}} interface. For some reason with older java versions using {{Mockito.doCallRealMethod()}} works for methods on interfaces that come with a default implementation, but it is considered 'abstract' (like methods that don't have a default impl) in java 14. while it could be fixed by creating anonymous {{PrincipalProvider}} for the test case, i would have preferred the mock-style. and obviously would be curious what exactly is the reason for that changed behavior. > PrincipalProviderTest fails with java 14 > ---------------------------------------- > > Key: OAK-8650 > URL: https://issues.apache.org/jira/browse/OAK-8650 > Project: Jackrabbit Oak > Issue Type: Task > Components: security-spi > Reporter: Julian Reschke > Assignee: Angela Schreiber > Priority: Major > > (with the fix for OAK-7358 applies, and jacoco turned off) > {noformat} > [ERROR] Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: > 0.013 s <<< FAILURE! - in > org.apache.jackrabbit.oak.spi.security.principal.PrincipalProviderTest > [ERROR] > testGetItemBasedPrincipal(org.apache.jackrabbit.oak.spi.security.principal.PrincipalProviderTest) > Time elapsed: 0.012 s <<< ERROR! > org.mockito.exceptions.base.MockitoException:Cannot call abstract real method > on java object! > Calling real methods is only possible when mocking non abstract method. > //correct example: > when(mockOfConcreteClass.nonAbstractMethod()).thenCallRealMethod(); > at > org.apache.jackrabbit.oak.spi.security.principal.PrincipalProviderTest.testGetItemBasedPrincipal(PrincipalProviderTest.java:36)[ERROR] > > testGetMembershipPrincipals(org.apache.jackrabbit.oak.spi.security.principal.PrincipalProviderTest) > Time elapsed: 0 s <<< ERROR! > org.mockito.exceptions.base.MockitoException:Cannot call abstract real method > on java object! > Calling real methods is only possible when mocking non abstract method. > //correct example: > when(mockOfConcreteClass.nonAbstractMethod()).thenCallRealMethod(); > at > org.apache.jackrabbit.oak.spi.security.principal.PrincipalProviderTest.testGetMembershipPrincipals(PrincipalProviderTest.java:43)[ERROR] > > testNegativeOffset(org.apache.jackrabbit.oak.spi.security.principal.PrincipalProviderTest) > Time elapsed: 0.001 s <<< ERROR! > java.lang.Exception: Unexpected exception, > expected<java.lang.IllegalArgumentException> but > was<org.mockito.exceptions.base.MockitoException> > at > org.apache.jackrabbit.oak.spi.security.principal.PrincipalProviderTest.testNegativeOffset(PrincipalProviderTest.java:51){noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)