diff --git a/core/src/main/java/com/usthe/sureness/provider/ducument/DocumentResourceAccess.java b/core/src/main/java/com/usthe/sureness/provider/ducument/DocumentResourceAccess.java index 830d1ee0a305c43ac6c828f1e36acbf43b84783f..b3ff72227f66bca40fde8d8f6ba6b0d18cd768ef 100644 --- a/core/src/main/java/com/usthe/sureness/provider/ducument/DocumentResourceAccess.java +++ b/core/src/main/java/com/usthe/sureness/provider/ducument/DocumentResourceAccess.java @@ -41,25 +41,32 @@ public class DocumentResourceAccess { */ public static DocumentResourceEntity loadConfig(String yamlFileName) throws IOException { Yaml yaml = new Yaml(); - InputStream inputStream = DocumentResourceAccess.class.getClassLoader().getResourceAsStream(yamlFileName); - if (inputStream == null) { - inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(yamlFileName); - } - if (inputStream == null) { - File yamlFile = new File(yamlFileName); - if (yamlFile.exists()) { - try (FileInputStream fileInputStream = new FileInputStream(yamlFile)) { - return yaml.loadAs(fileInputStream, DocumentResourceEntity.class); - } catch (IOException e) { - throw new IOException(e); + InputStream inputStream = null; + try { + inputStream = DocumentResourceAccess.class.getClassLoader().getResourceAsStream(yamlFileName); + if (inputStream == null) { + inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(yamlFileName); + } + if (inputStream == null) { + File yamlFile = new File(yamlFileName); + if (yamlFile.exists()) { + try (FileInputStream fileInputStream = new FileInputStream(yamlFile)) { + return yaml.loadAs(fileInputStream, DocumentResourceEntity.class); + } catch (IOException e) { + throw new IOException(e); + } } } + if (inputStream == null) { + throw new FileNotFoundException("sureness file: " + DEFAULT_FILE_NAME + " not found, " + + "please create the file if you need config resource"); + } + return yaml.loadAs(inputStream, DocumentResourceEntity.class); + } finally { + if (inputStream != null) { + inputStream.close(); + } } - if (inputStream == null) { - throw new FileNotFoundException("sureness file: " + DEFAULT_FILE_NAME + " not found, " + - "please create the file if you need config resource"); - } - return yaml.loadAs(inputStream, DocumentResourceEntity.class); } /** diff --git a/core/src/main/java/com/usthe/sureness/util/ClassScanner.java b/core/src/main/java/com/usthe/sureness/util/ClassScanner.java index 22ed1521d94dd8ea667894757d21830f49f0af33..5ae939776b7b941c3af4e969bf42c5fe4cf6fd5b 100644 --- a/core/src/main/java/com/usthe/sureness/util/ClassScanner.java +++ b/core/src/main/java/com/usthe/sureness/util/ClassScanner.java @@ -240,30 +240,30 @@ public enum ClassScanner { private static List> recursiveScan4Jar(String pkg, String jarPath) throws IOException { List> classList = new LinkedList<>(); - JarInputStream jin = new JarInputStream(new FileInputStream(jarPath)); - JarEntry entry = jin.getNextJarEntry(); - while (entry != null) { - String name = entry.getName(); - entry = jin.getNextJarEntry(); - - if (!name.contains(package2Path(pkg))) { - continue; - } - if (isClass(name)) { - if (isAnonymousInnerClass(name)) { + try (JarInputStream jin = new JarInputStream(new FileInputStream(jarPath))) { + JarEntry entry = jin.getNextJarEntry(); + while (entry != null) { + String name = entry.getName(); + entry = jin.getNextJarEntry(); + + if (!name.contains(package2Path(pkg))) { continue; } - - String className = classFile2SimpleClass(path2Package(name)); - try { - Class clz = Thread.currentThread().getContextClassLoader().loadClass(className); - classList.add(clz); - } catch (ClassNotFoundException | LinkageError e) { - log.error("Warning: Can not load class: {}", className); + if (isClass(name)) { + if (isAnonymousInnerClass(name)) { + continue; + } + + String className = classFile2SimpleClass(path2Package(name)); + try { + Class clz = Thread.currentThread().getContextClassLoader().loadClass(className); + classList.add(clz); + } catch (ClassNotFoundException | LinkageError e) { + log.error("Warning: Can not load class: {}", className); + } } } } - return classList; } diff --git a/core/src/main/java/com/usthe/sureness/util/SurenessCommonUtil.java b/core/src/main/java/com/usthe/sureness/util/SurenessCommonUtil.java index f4b578c9475fd35fd2d563f281b2c2f4a5bb1474..deac7af7bfddcd675faecea1901722fef3ef12a0 100644 --- a/core/src/main/java/com/usthe/sureness/util/SurenessCommonUtil.java +++ b/core/src/main/java/com/usthe/sureness/util/SurenessCommonUtil.java @@ -21,6 +21,7 @@ public class SurenessCommonUtil { private static final String PATH_SPLIT = "/"; private static final String RANDOM_CHAR = "abcdefghijklmnopqrstuvwxyz0123456789"; + private static final Random RANDOM = new Random(); /** * match the userAgent @@ -58,10 +59,9 @@ public class SurenessCommonUtil { if (length < 1) { length = 6; } - Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) { - int number = random.nextInt(RANDOM_CHAR.length()); + int number = RANDOM.nextInt(RANDOM_CHAR.length()); sb.append(RANDOM_CHAR.charAt(number)); } return sb.toString();