@@ -30,6 +30,7 @@ class ScopeInfo {
30
30
private String moduleFullName ;
31
31
private String moduleShortName ;
32
32
private JavaFileObject moduleFile ;
33
+ private boolean emptyModule ;
33
34
34
35
/**
35
36
* Create for the main/global module scope.
@@ -74,11 +75,14 @@ private String initName(String topPackage) {
74
75
}
75
76
76
77
void initialiseName (String topPackage ) throws IOException {
77
- modulePackage = topPackage ;
78
- final String name = initName (modulePackage );
79
- moduleShortName = name + "Module" ;
80
- moduleFullName = modulePackage + "." + moduleShortName ;
81
- moduleFile = context .createWriter (moduleFullName );
78
+ emptyModule = topPackage == null ;
79
+ if (!emptyModule ) {
80
+ modulePackage = topPackage ;
81
+ final String name = initName (modulePackage );
82
+ moduleShortName = name + "Module" ;
83
+ moduleFullName = modulePackage + "." + moduleShortName ;
84
+ moduleFile = context .createWriter (moduleFullName );
85
+ }
82
86
}
83
87
84
88
JavaFileObject moduleFile () {
@@ -155,7 +159,15 @@ void writeModule() {
155
159
context .logError ("already written module " + name );
156
160
return ;
157
161
}
158
- MetaDataOrdering ordering = new MetaDataOrdering (metaData .values (), context , this );
162
+ final Collection <MetaData > meta = metaData .values ();
163
+ if (emptyModule ) {
164
+ // typically nothing in the default scope, only custom scopes
165
+ if (meta .size () > 0 ) {
166
+ context .logWarn ("Empty module but meta is not empty? " + meta );
167
+ }
168
+ return ;
169
+ }
170
+ MetaDataOrdering ordering = new MetaDataOrdering (meta , context , this );
159
171
int remaining = ordering .processQueue ();
160
172
if (remaining > 0 ) {
161
173
ordering .logWarnings ();
0 commit comments