Skip to content

Commit b487fd3

Browse files
zapsterjovanstevanovic
authored andcommitted
svm: fix layered build
1 parent 0690599 commit b487fd3

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/fs/runtimeinit/FileSystemProviderRuntimeInitSupport.java

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import java.nio.file.FileSystem;
2929
import java.nio.file.spi.FileSystemProvider;
30+
import java.util.Objects;
3031

3132
import org.graalvm.nativeimage.Platform;
3233
import org.graalvm.nativeimage.Platforms;
@@ -73,13 +74,21 @@ final class Target_java_io_DefaultFileSystem_RunTime {
7374
* {@code JDKInitializationFeature}.
7475
*/
7576
class DefaultFileSystemHolder {
76-
static final Target_java_io_FileSystem_RunTime FS = Target_java_io_DefaultFileSystem_RunTime.getFileSystem();
77+
static final Target_java_io_FileSystem_RunTime FS;
78+
static {
79+
if (SubstrateUtil.HOSTED) {
80+
// unused - layered images might want to initialize during image build
81+
FS = null;
82+
} else {
83+
FS = Target_java_io_DefaultFileSystem_RunTime.getFileSystem();
84+
}
85+
}
7786
}
7887

7988
class DefaultFileSystemAccessor {
8089
@SuppressWarnings("unused")
8190
static Target_java_io_FileSystem_RunTime get() {
82-
return DefaultFileSystemHolder.FS;
91+
return Objects.requireNonNull(DefaultFileSystemHolder.FS);
8392
}
8493
}
8594

@@ -96,7 +105,16 @@ final class Target_sun_nio_fs_DefaultFileSystemProvider_RunTime {
96105
* {@code JDKInitializationFeature}.
97106
*/
98107
class SunNioFsDefaultFileSystemHolder {
99-
static final FileSystem FS = Target_sun_nio_fs_DefaultFileSystemProvider_RunTime.theFileSystem();
108+
static final FileSystem FS;
109+
110+
static {
111+
if (SubstrateUtil.HOSTED) {
112+
// unused - layered images might want to initialize during image build
113+
FS = null;
114+
} else {
115+
FS = Target_sun_nio_fs_DefaultFileSystemProvider_RunTime.theFileSystem();
116+
}
117+
}
100118
}
101119

102120
@TargetClass(className = "sun.nio.fs.UnixFileSystem", onlyWith = JDKInitializedAtRunTime.class)
@@ -115,7 +133,7 @@ final class Target_sun_nio_fs_UnixPath_RunTime {
115133
@SuppressWarnings("unused")
116134
class UnixFileSystemAccessor {
117135
static Target_sun_nio_fs_UnixFileSystem_RunTime get(Target_sun_nio_fs_UnixPath_RunTime that) {
118-
return SubstrateUtil.cast(SunNioFsDefaultFileSystemHolder.FS, Target_sun_nio_fs_UnixFileSystem_RunTime.class);
136+
return Objects.requireNonNull(SubstrateUtil.cast(SunNioFsDefaultFileSystemHolder.FS, Target_sun_nio_fs_UnixFileSystem_RunTime.class));
119137
}
120138

121139
static void set(Target_sun_nio_fs_UnixPath_RunTime that, Target_sun_nio_fs_UnixFileSystem_RunTime value) {
@@ -142,7 +160,7 @@ final class Target_sun_nio_fs_WindowsPath_RunTime {
142160
@SuppressWarnings("unused")
143161
class WindowsFileSystemAccessor {
144162
static Target_sun_nio_fs_WindowsFileSystem_RunTime get(Target_sun_nio_fs_WindowsPath_RunTime that) {
145-
return SubstrateUtil.cast(SunNioFsDefaultFileSystemHolder.FS, Target_sun_nio_fs_WindowsFileSystem_RunTime.class);
163+
return Objects.requireNonNull(SubstrateUtil.cast(SunNioFsDefaultFileSystemHolder.FS, Target_sun_nio_fs_WindowsFileSystem_RunTime.class));
146164
}
147165

148166
static void set(Target_sun_nio_fs_WindowsPath_RunTime that, Target_sun_nio_fs_WindowsFileSystem_RunTime value) {

0 commit comments

Comments
 (0)