Author: sebb
Date: Wed May 14 07:30:30 2008
New Revision: 656289
URL: http://svn.apache.org/viewvc?rev=656289&view=rev
Log:
Use ConversionException to show location of any errors loading the test plan
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/ScriptWrapperConverter.java
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/ScriptWrapperConverter.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/ScriptWrapperConverter.java?rev=656289&r1=656288&r2=656289&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/ScriptWrapperConverter.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/ScriptWrapperConverter.java
Wed May 14 07:30:30 2008
@@ -22,6 +22,7 @@
import org.apache.jorphan.collections.HashTree;
import com.thoughtworks.xstream.mapper.Mapper;
+import com.thoughtworks.xstream.converters.ConversionException;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
@@ -29,7 +30,7 @@
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
/**
- * @author mstover
+ * Handles XStream conversion of Test Scripts
*
*/
public class ScriptWrapperConverter implements Converter {
@@ -90,10 +91,33 @@
ConversionHelp.setInVersion(wrap.version);// Make sure decoding
// follows input file
reader.moveDown();
- wrap.testPlan = (HashTree) context.convertAnother(wrap,
getNextType(reader));
+ // Catch errors and rethrow as ConversionException so we get
location details
+ try {
+ wrap.testPlan = (HashTree) context.convertAnother(wrap,
getNextType(reader));
+ } catch (NoClassDefFoundError e) {
+ throw createConversionException(e);
+ } catch (Exception e) {
+ throw createConversionException(e);
+ }
return wrap;
}
+ private ConversionException createConversionException(Throwable e) {
+ final ConversionException conversionException = new
ConversionException(e);
+ StackTraceElement[] ste = e.getStackTrace();
+ if (ste!=null){
+ for(int i=0; i<ste.length; i++){
+ StackTraceElement top=ste[i];
+ String className=top.getClassName();
+ if (className.startsWith("org.apache.jmeter.")){
+ conversionException.add("first-jmeter-class",
top.toString());
+ break;
+ }
+ }
+ }
+ return conversionException;
+ }
+
protected Class getNextType(HierarchicalStreamReader reader) {
String classAttribute =
reader.getAttribute(ConversionHelp.ATT_CLASS);
Class type;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]