5
5
package net .snowflake .client .core ;
6
6
7
7
import static net .snowflake .client .core .StmtUtil .mapper ;
8
+ import static net .snowflake .client .jdbc .SnowflakeUtil .isWindows ;
8
9
import static net .snowflake .client .jdbc .SnowflakeUtil .systemGetProperty ;
9
10
import static org .junit .jupiter .api .Assertions .assertDoesNotThrow ;
10
11
import static org .junit .jupiter .api .Assertions .assertThrows ;
@@ -168,19 +169,28 @@ private File createCacheFile() {
168
169
if (Files .exists (cacheFile .getParent ())) {
169
170
Files .delete (cacheFile .getParent ());
170
171
}
171
- Files .createDirectories (
172
- cacheFile .getParent (),
173
- PosixFilePermissions .asFileAttribute (
174
- Stream .of (
175
- PosixFilePermission .OWNER_READ ,
176
- PosixFilePermission .OWNER_WRITE ,
177
- PosixFilePermission .OWNER_EXECUTE )
178
- .collect (Collectors .toSet ())));
179
- Files .createFile (
180
- cacheFile ,
181
- PosixFilePermissions .asFileAttribute (
182
- Stream .of (PosixFilePermission .OWNER_READ , PosixFilePermission .OWNER_WRITE )
183
- .collect (Collectors .toSet ())));
172
+ if (!isWindows ()) {
173
+ Files .createDirectories (
174
+ cacheFile .getParent (),
175
+ PosixFilePermissions .asFileAttribute (
176
+ Stream .of (
177
+ PosixFilePermission .OWNER_READ ,
178
+ PosixFilePermission .OWNER_WRITE ,
179
+ PosixFilePermission .OWNER_EXECUTE )
180
+ .collect (Collectors .toSet ())));
181
+ } else {
182
+ Files .createDirectories (cacheFile .getParent ());
183
+ }
184
+
185
+ if (!isWindows ()) {
186
+ Files .createFile (
187
+ cacheFile ,
188
+ PosixFilePermissions .asFileAttribute (
189
+ Stream .of (PosixFilePermission .OWNER_READ , PosixFilePermission .OWNER_WRITE )
190
+ .collect (Collectors .toSet ())));
191
+ } else {
192
+ Files .createFile (cacheFile );
193
+ }
184
194
ObjectNode cacheContent = mapper .createObjectNode ();
185
195
cacheContent .put ("token" , "tokenValue" );
186
196
fileCacheManager .overrideCacheFile (cacheFile .toFile ());
@@ -199,4 +209,17 @@ private Path createSymlink() throws IOException {
199
209
}
200
210
return Files .createSymbolicLink (link , cacheFile .toPath ());
201
211
}
212
+
213
+ @ Test
214
+ void shouldCreateDirAndFile () {
215
+ String tmpDirPath = System .getProperty ("java.io.tmpdir" );
216
+ String cacheDirPath = tmpDirPath + File .separator + "snowflake-cache-dir" ;
217
+ System .setProperty ("FILE_CACHE_MANAGER_SHOULD_CREATE_DIR_AND_FILE" , cacheDirPath );
218
+ FileCacheManager .builder ()
219
+ .setOnlyOwnerPermissions (false )
220
+ .setCacheDirectorySystemProperty ("FILE_CACHE_MANAGER_SHOULD_CREATE_DIR_AND_FILE" )
221
+ .setBaseCacheFileName ("cache-file" )
222
+ .build ();
223
+ assertTrue (new File (tmpDirPath ).exists ());
224
+ }
202
225
}
0 commit comments