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 2020/03/25 15:26:48 UTC

[jmeter] branch master updated: Use correct conversion for URLs to File

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 33e23b8  Use correct conversion for URLs to File
33e23b8 is described below

commit 33e23b80ebf7c769950c8d3852281f1cd63ad35d
Author: Felix Schumacher <fe...@internetallee.de>
AuthorDate: Wed Mar 25 16:23:40 2020 +0100

    Use correct conversion for URLs to File
    
    After using File directly for TemplateManager the tests failed for Files
    that are created by reading resources from classes, when those resources
    are located inside of directories containing spaces.
    
    Use Paths API to convert the URIs to Files that have correctly decoded
    names.
    
    Bugzilla Id: 64227
---
 .../jmeter/gui/action/template/TestTemplateManager.java   | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/components/src/test/java/org/apache/jmeter/gui/action/template/TestTemplateManager.java b/src/components/src/test/java/org/apache/jmeter/gui/action/template/TestTemplateManager.java
index 791ff0a..7990339 100644
--- a/src/components/src/test/java/org/apache/jmeter/gui/action/template/TestTemplateManager.java
+++ b/src/components/src/test/java/org/apache/jmeter/gui/action/template/TestTemplateManager.java
@@ -26,6 +26,8 @@ import static org.junit.Assert.assertTrue;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Paths;
 import java.util.Collections;
 import java.util.Map;
 
@@ -52,7 +54,7 @@ public class TestTemplateManager extends JMeterTestCase {
     }
 
     private Map<String, Template> readTemplateFromFile() {
-        File xmlTemplate = new File(this.getClass().getResource("validTemplates.xml").getFile());
+        File xmlTemplate = getFileFromResource("validTemplates.xml");
         try {
             return TemplateManager.getInstance().parseTemplateFile(xmlTemplate);
         } catch (IOException | SAXException | ParserConfigurationException e) {
@@ -60,6 +62,14 @@ public class TestTemplateManager extends JMeterTestCase {
         }
     }
 
+    private File getFileFromResource(String resourceName) {
+        try {
+            return Paths.get(this.getClass().getResource(resourceName).toURI()).toFile();
+        } catch (URISyntaxException e) {
+            throw new RuntimeException("Can't read resource " + resourceName, e);
+        }
+    }
+
     @Test
     public void testValidTemplateFile() {
         Template testTemplate = templateMap.get("testTemplateWithParameters");
@@ -98,8 +108,7 @@ public class TestTemplateManager extends JMeterTestCase {
     @Test
     public void testInvalidTemplateXml() throws IOException, SAXException, ParserConfigurationException {
         try {
-            String xmlTemplatePath = this.getClass().getResource("invalidTemplates.xml").getFile();
-            File templateFile = new File(xmlTemplatePath);
+            File templateFile = getFileFromResource("invalidTemplates.xml");
             TemplateManager.getInstance().parseTemplateFile(templateFile);
         } catch (SAXParseException ex) {
             assertTrue("Exception did not contains expected message, got:" + ex.getMessage(),