lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (SOLR-9893) EasyMock/Mockito no longer works with Java 9 b148+
Date Mon, 09 Jan 2017 11:42:58 GMT

    [ https://issues.apache.org/jira/browse/SOLR-9893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15811569#comment-15811569
] 

Uwe Schindler edited comment on SOLR-9893 at 1/9/17 11:42 AM:
--------------------------------------------------------------

Hi [~julianhyde],

I have no further information about this. I'd suggest to ask on the Github issue. We will
disable the tests for now (using some {{assumeFalse("does not work", Constants.JRE_IS_MINIMUM_JAVA9)}}).
For Solr it's a bit more work as it historically uses many mocking frameworks and all of these
broke.

It is also not easy to fix this, as CGLIB is included in shaded form and bundled with the
mocking jars, so you cannot just replace cglib dependency at one central place and all would
work. You have to wait for updates of all those mocking frameworks.

Not sure how to proceed :-(


was (Author: thetaphi):
Hi [~julianhyde],

I have no further information about this. I'd suggest to ask on the Github issue. We will
disable the tests for now (using some {{assumeTrue("does not work", Constants.JRE_IS_MINIMUM_JAVA9)}}).
For Solr it's a bit more work as it historically uses many mocking frameworks and all of these
broke.

It is also not easy to fix this, as CGLIB is included in shaded form and bundled with the
mocking jars, so you cannot just replace cglib dependency at one central place and all would
work. You have to wait for updates of all those mocking frameworks.

Not sure how to proceed :-(

> 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: Blocker
>
> 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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message