ALL-UNNAMED module does not export all packages from classpath

Pavel Bucek pavel.bucek at oracle.com
Mon Mar 20 21:44:20 UTC 2017


// moving from jdk9-dev, as suggested.

Hi Jon,

Thanks for clarification of the error message.

The main point here is that adding "import ... " fixes the issue, which 
doesn't feel correct.

When dependencies are put on the classpath, the import statement is not 
required.

Regards,
Pavel

On 20/03/2017 22:26, Jonathan Gibbons wrote:
> 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 jigsaw-dev mailing list