@@ -142,33 +142,27 @@ class ZipFileSystem extends FileSystem {
142
142
private final Set <String > supportedFileAttributeViews ;
143
143
144
144
// If it's decided to try and make access mode common to other file systems,
145
- // this should exist somewhere common, but if it's definitely never going to
145
+ // this could exist somewhere common, but if it's definitely never going to
146
146
// be shared, it could be made public here.
147
- private enum FileSystemAccessMode {
148
- // Creates a file system for default access according to file system semantics.
149
- DEFAULT ("default" ),
147
+ private enum AccessMode {
150
148
// Creates a file system for read-write access.
151
149
READ_WRITE ("readWrite" ),
152
150
// Creates a file system for read-only access.
153
151
READ_ONLY ("readOnly" );
154
152
155
153
private final String label ;
156
154
157
- FileSystemAccessMode (String label ) {
155
+ AccessMode (String label ) {
158
156
this .label = label ;
159
157
}
160
158
161
- // Parses the file system permission from an environmental parameter.
162
- static FileSystemAccessMode from (Object value ) {
159
+ // Parses the file system permission from an environmental parameter. While
160
+ // the FileSystemAccessMode is private, we don't need to check if it was
161
+ // given as a value. Returns null to indicate default behaviour.
162
+ static AccessMode from (Object value ) {
163
163
switch (value ) {
164
164
case null -> {
165
- return DEFAULT ;
166
- }
167
- case FileSystemAccessMode permission -> {
168
- return permission ;
169
- }
170
- case String label when DEFAULT .label .equals (label ) -> {
171
- return DEFAULT ;
165
+ return null ;
172
166
}
173
167
case String label when READ_WRITE .label .equals (label ) -> {
174
168
return READ_WRITE ;
@@ -195,8 +189,8 @@ static FileSystemAccessMode from(Object value) {
195
189
this .forceEnd64 = isTrue (env , "forceZIP64End" );
196
190
this .defaultCompressionMethod = getDefaultCompressionMethod (env );
197
191
198
- FileSystemAccessMode accessMode = FileSystemAccessMode .from (env .get (PROPERTY_ACCESS_MODE ));
199
- boolean forceReadOnly = (accessMode == FileSystemAccessMode .READ_ONLY );
192
+ AccessMode accessMode = AccessMode .from (env .get (PROPERTY_ACCESS_MODE ));
193
+ boolean forceReadOnly = (accessMode == AccessMode .READ_ONLY );
200
194
201
195
this .supportPosix = isTrue (env , PROPERTY_POSIX );
202
196
this .defaultOwner = supportPosix ? initOwner (zfpath , env ) : null ;
@@ -217,7 +211,7 @@ static FileSystemAccessMode from(Object value) {
217
211
}
218
212
}
219
213
// sm and existence check
220
- zfpath .getFileSystem ().provider ().checkAccess (zfpath , AccessMode .READ );
214
+ zfpath .getFileSystem ().provider ().checkAccess (zfpath , java . nio . file . AccessMode .READ );
221
215
this .zc = ZipCoder .get (nameEncoding );
222
216
this .ch = Files .newByteChannel (zfpath , READ );
223
217
try {
@@ -246,7 +240,7 @@ static FileSystemAccessMode from(Object value) {
246
240
// We only allow read-write zip/jar files if they are not multi-release
247
241
// JARs and the underlying file is writable.
248
242
this .readOnly = forceReadOnly || multiReleaseVersion .isPresent () || !Files .isWritable (zfpath );
249
- if (readOnly && accessMode == FileSystemAccessMode .READ_WRITE ) {
243
+ if (readOnly && accessMode == AccessMode .READ_WRITE ) {
250
244
String reason = Files .isWritable (zfpath )
251
245
? "A multi-release JAR file opened with a specified version is not writable"
252
246
: "The underlying ZIP file is not writable" ;
0 commit comments