drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Rogers (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DRILL-5170) Mockito-based unit tests fail when run under Java 8
Date Thu, 29 Dec 2016 22:01:58 GMT
Paul Rogers created DRILL-5170:

             Summary: Mockito-based unit tests fail when run under Java 8
                 Key: DRILL-5170
                 URL: https://issues.apache.org/jira/browse/DRILL-5170
             Project: Apache Drill
          Issue Type: Bug
    Affects Versions: 1.8.0
            Reporter: Paul Rogers
            Priority: Minor

Drill makes extensive use of the Mockito mocking library. Drill uses a very old version of
Mockito. Mockito appears to perform byte-code manipulations that are incompatible with Java
8. For example:

cd exec/java-exec/
mvn surefire:test -Dtest=TestSimpleProjection
Running org.apache.drill.exec.physical.impl.project.TestSimpleProjection#project
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 6.794 sec <<< FAILURE!
- in org.apache.drill.exec.physical.impl.project.TestSimpleProjection
project(org.apache.drill.exec.physical.impl.project.TestSimpleProjection)  Time elapsed: 0.215
sec  <<< ERROR!
java.lang.VerifyError: null
	at sun.instrument.InstrumentationImpl.redefineClasses0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:498)

A similar error occurs when running the same unit test under Eclipse.

Fixing this issue is non-trivial. Mockito is subject to rapid change. The semantics of mocks
has changed significantly. Code that works fine in our old version requires extensive rework
to work with the current version.

For now, the only workaround is to compile Drill under the (obsolete) Java 7 and use that
version to run unit tests.

This message was sent by Atlassian JIRA

View raw message