You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2022/04/18 17:20:24 UTC

[jmeter] branch master updated: Use correct constructors for Charset aware Reader

This is an automated email from the ASF dual-hosted git repository.

fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new eaf5d0edfe Use correct constructors for Charset aware Reader
eaf5d0edfe is described below

commit eaf5d0edfe1cbe0b8eb9608c0a1de538b1c7c67a
Author: Felix Schumacher <fe...@internetallee.de>
AuthorDate: Mon Apr 18 19:20:11 2022 +0200

    Use correct constructors for Charset aware Reader
    
    and clean-up the code a bit
---
 .../jmeter/resources/ResourceKeyUsageTest.java     | 49 ++++++++++------------
 1 file changed, 21 insertions(+), 28 deletions(-)

diff --git a/src/core/src/test/java/org/apache/jmeter/resources/ResourceKeyUsageTest.java b/src/core/src/test/java/org/apache/jmeter/resources/ResourceKeyUsageTest.java
index b9af52655f..0a5f37344d 100644
--- a/src/core/src/test/java/org/apache/jmeter/resources/ResourceKeyUsageTest.java
+++ b/src/core/src/test/java/org/apache/jmeter/resources/ResourceKeyUsageTest.java
@@ -17,15 +17,13 @@
 
 package org.apache.jmeter.resources;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
+import java.io.FileInputStream;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -34,10 +32,10 @@ import java.util.PropertyResourceBundle;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.jorphan.util.JOrphanUtils;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-public class ResourceKeyUsageTest {
+class ResourceKeyUsageTest {
     // We assume the test starts in "module" (e.g. src/core) directory (which is true for Gradle and IDEs)
     private static final File srcFiledir = new File("src/main/java");
 
@@ -52,23 +50,21 @@ public class ResourceKeyUsageTest {
 
     // Check that calls to getResString use a valid property key name
     @Test
-    @SuppressWarnings("CatchAndPrintStackTrace")
-    public void checkResourceReferences() throws Exception {
+    void checkResourceReferences() throws Exception {
         String resourceName = "/org/apache/jmeter/resources/messages.properties";
         PropertyResourceBundle messagePRB = getRAS(resourceName);
-        assertNotNull("Resource bundle " + resourceName + " was not found", resourceName);
+        Assertions.assertNotNull(resourceName, () -> "Resource bundle " + resourceName + " was not found");
         List<String> failures = new ArrayList<>();
+        final List<Exception> exceptions = new ArrayList<>();
 
-        PackageTest.findFile(srcFiledir, null, new FilenameFilter() {
-            @Override
-            public boolean accept(File dir, String name) {
-                final File file = new File(dir, name);
-                // Look for calls to JMeterUtils.getResString()
-                final Pattern pat = Pattern.compile(".*getResString\\(\"([^\"]+)\"\\).*");
-                if (name.endsWith(".java")) {
-                  BufferedReader fileReader = null;
-                  try {
-                    fileReader = new BufferedReader(new FileReader(file, StandardCharsets.UTF_8));
+        PackageTest.findFile(srcFiledir, null, (dir, name) -> {
+            final File file = new File(dir, name);
+            // Look for calls to JMeterUtils.getResString()
+            final Pattern pat = Pattern.compile(".*getResString\\(\"([^\"]+)\"\\).*");
+            if (name.endsWith(".java")) {
+                try (FileInputStream fis = new FileInputStream(file);
+                     InputStreamReader is = new InputStreamReader(fis, StandardCharsets.UTF_8);
+                     BufferedReader fileReader = new BufferedReader(is)) {
                     String s;
                     while ((s = fileReader.readLine()) != null) {
                         if (s.matches("\\s*//.*")) { // leading comment
@@ -81,28 +77,25 @@ public class ResourceKeyUsageTest {
                             String resKey = key.replace(' ', '_'); // $NON-NLS-1$ // $NON-NLS-2$
                             resKey = resKey.toLowerCase(java.util.Locale.ENGLISH);
                             if (!key.equals(resKey)) {
-                                System.out.println(file+": non-standard message key: '"+key+"'");
+                                System.out.println(file + ": non-standard message key: '" + key + "'");
                             }
                             try {
                                 messagePRB.getString(resKey);
                             } catch (MissingResourceException e) {
-                                failures.add(file+": missing message key: '"+key+"'");
+                                failures.add(file + ": missing message key: '" + key + "'");
                             }
                         }
                     }
                 } catch (IOException e) {
-                      e.printStackTrace();
-                } finally {
-                    JOrphanUtils.closeQuietly(fileReader);
-                }
-
+                    exceptions.add(e);
                 }
-                return file.isDirectory();
             }
+            return file.isDirectory();
         });
+        Assertions.assertTrue(exceptions.isEmpty());
         if (failures.isEmpty()) {
             return;
         }
-        fail(String.join("\n", failures));
+        Assertions.fail(() -> String.join("\n", failures));
     }
 }