private void loadLibrary()

in src/main/java/pemja/utils/CommonUtils.java [85:109]


    private void loadLibrary(String libraryPath, String packageName) {
        try {
            System.load(libraryPath);
        } catch (UnsatisfiedLinkError error) {
            try {
                Field field = ClassLoader.class.getDeclaredField("loadedLibraryNames");
                field.setAccessible(true);
                Object libsObject = field.get(null);
                if (libsObject instanceof Vector) {
                    Vector<String> libs = (Vector<String>) libsObject;
                    synchronized (libsObject) {
                        libs.removeIf(element -> element.contains(packageName));
                    }
                } else {
                    Set<String> libs = (Set<String>) libsObject;
                    synchronized (libsObject) {
                        libs.removeIf(element -> element.contains(packageName));
                    }
                }
                System.load(libraryPath);
            } catch (Throwable throwable) {
                throw new RuntimeException(throwable);
            }
        }
    }