You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/06/10 23:22:04 UTC

svn commit: r545944 - /jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellInterpreter.java

Author: sebb
Date: Sun Jun 10 14:22:03 2007
New Revision: 545944

URL: http://svn.apache.org/viewvc?view=rev&rev=545944
Log:
Tidy logging; add evalNoLog() method for use by listener callbacks

Modified:
    jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellInterpreter.java

Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellInterpreter.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellInterpreter.java?view=diff&rev=545944&r1=545943&r2=545944
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellInterpreter.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/BeanShellInterpreter.java Sun Jun 10 14:22:03 2007
@@ -151,20 +151,32 @@
     }
 
 	private Object bshInvoke(Method m, String s) throws JMeterException {
+		return bshInvoke(m, s, true);
+	}
+
+	private Object bshInvoke(Method m, String s, boolean shouldLog) throws JMeterException {
 		Object r = null;
+		final String errorString = "Error invoking bsh method: ";
 		try {
 			r = m.invoke(bshInstance, new Object[] { s });
 		} catch (IllegalArgumentException e) { // Programming error
-			log.error("Error invoking bsh method " + m.getName() + "\n", e);
-			throw new JMeterError("Error invoking bsh method " + m.getName(), e);
+			log.error(errorString + m.getName());
+			throw new JMeterError(errorString + m.getName(), e);
 		} catch (IllegalAccessException e) { // Also programming error
-			log.error("Error invoking bsh method " + m.getName() + "\n", e);
-			throw new JMeterError("Error invoking bsh method " + m.getName(), e);
+		    log.error(errorString + m.getName());
+			throw new JMeterError(errorString + m.getName(), e);
 		} catch (InvocationTargetException e) { // Can occur at run-time
 			// could be caused by the bsh Exceptions:
 			// EvalError, ParseException or TargetError
-			log.error("Error invoking bsh method " + m.getName() + "\n", e);
-			throw new JMeterException("Error invoking bsh method " + m.getName(), e);
+			if (shouldLog) {
+				Throwable cause = e.getCause();
+				if (cause != null) {
+					log.error(errorString + m.getName() + "\t" + cause.getLocalizedMessage());
+				} else {
+					log.error(errorString + m.getName());
+				}
+			}
+			throw new JMeterException(errorString + m.getName(), e);
 		}
 		return r;
 	}
@@ -190,6 +202,10 @@
 
 	public Object eval(String s) throws JMeterException {
 		return bshInvoke(bshEval, s);
+	}
+
+	public Object evalNoLog(String s) throws JMeterException {
+		return bshInvoke(bshEval, s, false);
 	}
 
 	public Object set(String s, Object o) throws JMeterException {



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org