From 9c8ac81f5b589a0a32eb8c5e3ac505b2ef5bfbf4 Mon Sep 17 00:00:00 2001 From: Philippe Mouawad Date: Fri, 10 Jun 2016 21:43:59 +0000 Subject: [PATCH] Bug 59351 - Improve log/error/message for IncludeController #resolve #202 Bugzilla Id: 59351 git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1747805 13f79535-47bb-0310-9956-ffa450edef68 Former-commit-id: 1bb389bdc0437ca9fc8569d8bfd95031ca1ca7a1 --- .../jmeter/control/IncludeController.java | 37 ++++++++++--------- xdocs/changes.xml | 2 + 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/components/org/apache/jmeter/control/IncludeController.java b/src/components/org/apache/jmeter/control/IncludeController.java index bd8bf9976d..66721234d4 100644 --- a/src/components/org/apache/jmeter/control/IncludeController.java +++ b/src/components/org/apache/jmeter/control/IncludeController.java @@ -121,8 +121,8 @@ public class IncludeController extends GenericController implements ReplaceableC final String includePath = getIncludePath(); HashTree tree = null; if (includePath != null && includePath.length() > 0) { + String fileName=prefix+includePath; try { - String fileName=prefix+includePath; File file = new File(fileName); final String absolutePath = file.getAbsolutePath(); log.info("loadIncludedElements -- try to load included module: "+absolutePath); @@ -130,8 +130,10 @@ public class IncludeController extends GenericController implements ReplaceableC log.info("loadIncludedElements -failed for: "+absolutePath); file = new File(FileServer.getFileServer().getBaseDir(), includePath); log.info("loadIncludedElements -Attempting to read it from: " + file.getAbsolutePath()); - if(!file.exists()){ - log.error("loadIncludedElements -failed for: " + file.getAbsolutePath()); + if(!file.canRead() || !file.isFile()){ + log.error("Include Controller \"" + + this.getName()+"\" can't load \"" + + fileName+"\" - see log for details"); throw new IOException("loadIncludedElements -failed for: " + absolutePath + " and " + file.getAbsolutePath()); } @@ -144,23 +146,22 @@ public class IncludeController extends GenericController implements ReplaceableC return tree; } catch (NoClassDefFoundError ex) // Allow for missing optional jars { - String msg = ex.getMessage(); - if (msg == null) { - msg = "Missing jar file - see log for details"; - } - log.warn("Missing jar file", ex); - JMeterUtils.reportErrorToUser(msg); + String msg = "Including file \""+ fileName + + "\" failed for Include Controller \""+ this.getName() + +"\", missing jar file"; + log.warn(msg, ex); + JMeterUtils.reportErrorToUser(msg+" - see log for details"); } catch (FileNotFoundException ex) { - String msg = ex.getMessage(); - JMeterUtils.reportErrorToUser(msg); - log.warn(msg); + String msg = "File \""+ fileName + + "\" not found for Include Controller \""+ this.getName()+"\""; + JMeterUtils.reportErrorToUser(msg+" - see log for details"); + log.warn(msg, ex); } catch (Exception ex) { - String msg = ex.getMessage(); - if (msg == null) { - msg = "Unexpected error - see log for details"; - } - JMeterUtils.reportErrorToUser(msg); - log.warn("Unexpected error", ex); + String msg = "Including file \"" + fileName + + "\" failed for Include Controller \"" + this.getName() + +"\", unexpected error"; + JMeterUtils.reportErrorToUser(msg+" - see log for details"); + log.warn(msg, ex); } } return tree; diff --git a/xdocs/changes.xml b/xdocs/changes.xml index 739e727d8f..29d8f86e83 100644 --- a/xdocs/changes.xml +++ b/xdocs/changes.xml @@ -88,6 +88,7 @@ Summary

Controllers

Listeners

@@ -162,6 +163,7 @@ Summary

We also thank bug reporters who helped us improve JMeter.
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes: