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

Uwe Schindler updated SOLR-9893:
--------------------------------
    Description: 
EasyMock does not work anymore with latest Java 9, because it uses cglib behind 
that is trying to access a protected method inside the runtime using 
setAccessible. This is no longer allowed by Java 9.

Actually this is really stupid. Instead of forcefully making the protected 
defineClass method available to the outside, it is much more correct to just 
subclass ClassLoader (like the Lucene expressions module does).

I tried updating to easymock/mockito, but all that does not work, approx 25 
tests fail. The only way is to disable all Mocking tests in Java 9. The 
underlying issue in cglib is still not solved, master's code is here: 
https://github.com/cglib/cglib/blob/master/cglib/src/main/java/net/sf/cglib/core/ReflectUtils.java#L44-L62

As we use an old stone-aged version of mockito (1.x), a fix is not expected to 
happen, although cglib might fix this!

What should we do? This stupid issue prevents us from testing Java 9 with Solr 
completely! 

  was:
EasyMock does not work anymore with latest Java 9, because it uses cglib behind 
that is trying to access a protected method inside the runtime using 
setAccessible. This is no longer allowed by Java 9.

Actually this is really stupid. Instead of forcefully making the protected 
defineClass method available to the outside, it is much more correct to just 
subclass ClassLoader (like the Lucene expressions module does).

I tried updating to easymock/mockito, but all that does not work, approx 25 
tests fail. The only way is to disable all Mocking tests in Java 9. The 
underlying issue in cglib is still not solved, master's code is here: 
https://github.com/cglib/cglib/blob/master/cglib/src/main/java/net/sf/cglib/core/ReflectUtils.java#L44-L62

As we use an old version ock mockito (1.x), a fix is not expected to happen, 
although cglib might fix this!

What should we do? This stupid issue prevents us from testing Java 9 with Solr 
completely! 


> EasyMock/Mockito no longer works with Java 9 b148+
> --------------------------------------------------
>
>                 Key: SOLR-9893
>                 URL: https://issues.apache.org/jira/browse/SOLR-9893
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: Tests
>    Affects Versions: 6.x, master (7.0)
>            Reporter: Uwe Schindler
>            Priority: Critical
>
> EasyMock does not work anymore with latest Java 9, because it uses cglib 
> behind that is trying to access a protected method inside the runtime using 
> setAccessible. This is no longer allowed by Java 9.
> Actually this is really stupid. Instead of forcefully making the protected 
> defineClass method available to the outside, it is much more correct to just 
> subclass ClassLoader (like the Lucene expressions module does).
> I tried updating to easymock/mockito, but all that does not work, approx 25 
> tests fail. The only way is to disable all Mocking tests in Java 9. The 
> underlying issue in cglib is still not solved, master's code is here: 
> https://github.com/cglib/cglib/blob/master/cglib/src/main/java/net/sf/cglib/core/ReflectUtils.java#L44-L62
> As we use an old stone-aged version of mockito (1.x), a fix is not expected 
> to happen, although cglib might fix this!
> What should we do? This stupid issue prevents us from testing Java 9 with 
> Solr completely! 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to