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
+ - 59351Improve log/error/message for IncludeController. Partly contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)
Listeners
@@ -162,6 +163,7 @@ Summary
- Felix Draxler (felix.draxler at sap.com)
+- Antonio Gomes Rodrigues (ra0077 at gmail.com)
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: