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/05/19 02:07:19 UTC

svn commit: r539646 - /jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/save/OldSaveService.java

Author: sebb
Date: Fri May 18 17:07:19 2007
New Revision: 539646

URL: http://svn.apache.org/viewvc?view=rev&rev=539646
Log:
Log which field was being parsed when an error is detected

Modified:
    jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/save/OldSaveService.java

Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/save/OldSaveService.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/save/OldSaveService.java?view=diff&rev=539646&r1=539645&r2=539646
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/save/OldSaveService.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/save/OldSaveService.java Fri May 18 17:07:19 2007
@@ -51,6 +51,7 @@
 import org.apache.jorphan.collections.HashTree;
 import org.apache.jorphan.collections.ListedHashTree;
 import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JMeterError;
 import org.apache.log.Logger;
 import org.xml.sax.SAXException;
 
@@ -91,7 +92,7 @@
     // ADDITIONAL CSV RESULT FILE CONSTANTS AND FIELD NAME CONSTANTS
     // ---------------------------------------------------------------------
 
-    private static final String CSV_TIME = "elapsed"; // $NON-NLS-1$
+    private static final String CSV_ELAPSED = "elapsed"; // $NON-NLS-1$
     private static final String CSV_BYTES= "bytes"; // $NON-NLS-1$
     private static final String CSV_THREAD_COUNT1 = "grpThreads"; // $NON-NLS-1$
     private static final String CSV_THREAD_COUNT2 = "allThreads"; // $NON-NLS-1$
@@ -134,11 +135,12 @@
      * @param config - configuration
      * @return SampleResult or null if header line detected
      * 
-     * @throws NumberFormatException, ParseException
+     * @throws NumberFormatException
+     * @throws JMeterError
      */
     public static SampleResult makeResultFromDelimitedString(String inputLine, SampleSaveConfiguration saveConfig) {
         // Check for a header line
-        if (inputLine.startsWith(TIME_STAMP) || inputLine.startsWith(CSV_TIME)){
+        if (inputLine.startsWith(TIME_STAMP) || inputLine.startsWith(CSV_ELAPSED)){
             return null;
         }
 		SampleResult result = null;
@@ -151,6 +153,7 @@
 		// The \Q prefix is needed to ensure that meta-characters (e.g. ".") work.
 		String parts[]=inputLine.split("\\Q"+_saveConfig.getDelimiter());// $NON-NLS-1$
 		String text = null;
+		String field = TIME_STAMP; // Save the name for error reporting
 		int i=0;
 
 		try {
@@ -164,6 +167,7 @@
 			}
 
 			if (saveConfig.saveTime()) {
+				field = CSV_ELAPSED;
 				text = parts[i++];
 				elapsed = Long.parseLong(text);
 			}
@@ -171,30 +175,36 @@
 			result = new SampleResult(timeStamp, elapsed);
 
 			if (saveConfig.saveLabel()) {
+				field = LABEL;
 				text = parts[i++];
 				result.setSampleLabel(text);
 			}
 			if (saveConfig.saveCode()) {
+				field = RESPONSE_CODE;
 				text = parts[i++];
 				result.setResponseCode(text);
 			}
 
 			if (saveConfig.saveMessage()) {
+				field = RESPONSE_MESSAGE;
 				text = parts[i++];
 				result.setResponseMessage(text);
 			}
 
 			if (saveConfig.saveThreadName()) {
+				field = THREAD_NAME;
 				text = parts[i++];
 				result.setThreadName(text);
 			}
 
 			if (saveConfig.saveDataType()) {
+				field = DATA_TYPE;
 				text = parts[i++];
 				result.setDataType(text);
 			}
 
 			if (saveConfig.saveSuccess()) {
+				field = SUCCESSFUL;
 				text = parts[i++];
 				result.setSuccessful(Boolean.valueOf(text).booleanValue());
 			}
@@ -205,6 +215,7 @@
 			}
             
             if (saveConfig.saveBytes()) {
+            	field = CSV_BYTES;
                 text = parts[i++];
                 result.setBytes(Integer.parseInt(text));
             }
@@ -220,26 +231,32 @@
             }
         
             if (saveConfig.saveFileName()) {
+            	field = CSV_FILENAME;
                 text = parts[i++];
                 result.setResultFileName(text);
             }            
             if (saveConfig.saveLatency()) {
+            	field = CSV_LATENCY;
                 text = parts[i++];
                 result.setLatency(Long.parseLong(text));
             }
 
             if (saveConfig.saveEncoding()) {
+            	field = CSV_ENCODING;
                 text = parts[i++];
                 result.setEncodingAndType(text);
             }
 
             
 		} catch (NumberFormatException e) {
-			log.warn("Error parsing number " + e);
+			log.warn("Error parsing " + field + " " + e);
 			throw e;
 		} catch (ParseException e) {
-			log.warn("Error parsing line " + e);
-			throw new RuntimeException(e.toString());
+			log.warn("Error parsing " + field + " " + e);
+			throw new JMeterError(e);
+		} catch (ArrayIndexOutOfBoundsException e){
+			log.warn("Insufficient columns to parse " + field);
+			throw new JMeterError(e);
 		}
 		return result;
 	}
@@ -268,7 +285,7 @@
 		}
 
 		if (saveConfig.saveTime()) {
-			text.append(CSV_TIME);
+			text.append(CSV_ELAPSED);
 			text.append(delim);
 		}
 



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