mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-12-23 02:31:52 +01:00
Update NativeUtils.java
This commit is contained in:
parent
ec83d01dca
commit
76089a3466
@ -19,36 +19,33 @@ public final class NativeUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static File unpackLibraryFromJarInternal(String path) throws IOException {
|
private static File unpackLibraryFromJarInternal(String path) throws IOException {
|
||||||
if (null == path || !path.startsWith("/")) {
|
Objects.requireNonNull(path, "The path cannot be null.");
|
||||||
throw new IllegalArgumentException("The path has to be absolute (start with '/').");
|
if (!path.startsWith("/")) {
|
||||||
|
throw new IllegalArgumentException("The path has to be absolute (start with '/').");
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] parts = path.split("/");
|
String[] parts = path.split("/");
|
||||||
String filename = (parts.length > 1) ? parts[parts.length - 1] : null;
|
String filename = parts.length > 1 ? parts[parts.length - 1] : null;
|
||||||
|
|
||||||
if (filename == null || filename.length() < MIN_PREFIX_LENGTH) {
|
if (filename == null || filename.length() < MIN_PREFIX_LENGTH) {
|
||||||
throw new IllegalArgumentException("The filename has to be at least 3 characters long.");
|
throw new IllegalArgumentException("The filename has to be at least 3 characters long.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (temporaryDir == null) {
|
File temp = Files.createTempFile(NATIVE_FOLDER_PATH_PREFIX, filename).toFile();
|
||||||
temporaryDir = createTempDirectory(NATIVE_FOLDER_PATH_PREFIX);
|
temp.deleteOnExit();
|
||||||
temporaryDir.deleteOnExit();
|
|
||||||
}
|
|
||||||
|
|
||||||
File temp = new File(temporaryDir, filename);
|
|
||||||
|
|
||||||
try (InputStream is = NativeUtils.class.getResourceAsStream(path)) {
|
try (InputStream is = NativeUtils.class.getResourceAsStream(path)) {
|
||||||
Files.copy(is, temp.toPath(), StandardCopyOption.REPLACE_EXISTING);
|
Files.copy(is, temp.toPath(), StandardCopyOption.REPLACE_EXISTING);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
temp.delete();
|
temp.delete();
|
||||||
throw e;
|
throw e;
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
temp.delete();
|
temp.delete();
|
||||||
throw new FileNotFoundException("File " + path + " was not found inside JAR.");
|
throw new FileNotFoundException("File " + path + " was not found inside JAR.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unpack library from JAR into temporary path
|
* Unpack library from JAR into temporary path
|
||||||
|
Loading…
Reference in New Issue
Block a user