ALL-UNNAMED module does not export all packages from classpath

Jonathan Gibbons jonathan.gibbons at oracle.com
Mon Mar 20 21:26:18 UTC 2017


If nothing else, the javac error message needs work.

> (package org.mockito.stubbing is declared in module , which does not export it)

The space between "module" and "," means there's an "empty" module name 
there, for the unnamed module, which should have been stated explicitly 
(i.e. "declared in the unnamed module").

Follow-ups would be better on jigsaw-dev or compiler-dev.

-- Jon



On 03/20/2017 02:15 PM, Libor Kramolis wrote:
> Hello.
>
> I have problem to compile following unit test:
> import org.junit.Test;
> import static org.junit.Assert.assertEquals;
> import static org.mockito.ArgumentMatchers.any;
> import static org.mockito.Mockito.mock;
> import static org.mockito.Mockito.when;
>
> public class TestCase {
>
>      @Test
>      public void test() {
>          Context context = mock(Context.class);
>          when(context.test(any())) //returns org.mockito.stubbing.OngoingStubbing
>                  .thenReturn("mock");
>
>          assertEquals("mock", context.test("any"));
>      }
>
>      interface Context {
>          String test(String value);
>      }
>
> }
> with following error:
>
> src/test/java/tst/TestCase.java:15: error: OngoingStubbing.thenReturn(T,T...) in package org.mockito.stubbing is not accessible
>                  .thenReturn("mock");
>                  ^
>    (package org.mockito.stubbing is declared in module , which does not export it)
>    where T is a type-variable:
>      T extends Object declared in interface OngoingStubbing
> 1 error
>
> Interface org.mockito.stubbing.OngoingStubbing is returned by when(…) method. And whenever I explicitly import the interface (no other change in code is necessary) compilation works.
>
> Full reproduced sources are available in zip file at http://anise.cz/~paja/liba/reproducer.zip <http://anise.cz/~paja/liba/reproducer.zip>. It contains javac commands. It is also possible to build it by Maven.
>
> What do you think about this behaviour? It seems to me as a bug. The import statement is very artificial in this case.
>
> Thanks in advance for your help.
>
> Best regards,
> Libor



More information about the jdk9-dev mailing list