This is related to the performance issues discussed in the thread "Performance with many small requests".

When I reworked my servlet to synchronize only on pieces that needed to be synchronized, rather than on the entire request processing routine, I am now throwing an exception when parsing a string into a java.util.Date variable. It only happens occasionally, maybe once every few dozen to a hundred or so requests, and I can't figure out why it doesn't work all the time.

Declared at the class level, I have:

private static final SimpleDateFormat sdfFullDateTime = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );


Then in the request processing method, I have

   dateTimeStr = dateStr + " " + timeStr;
   try {
       dataDate = sdfFullDateTime.parse( dateTimeStr );
   } catch ( Exception e ) {
writeLog( "Unable to parse dataTime string: '", dateTimeStr + "': " + e );
   }


(the try/catch is there only for debugging this issue), and in the log I'm seeing:

2009-05-11 09:19:54: Unable to parse dateTime string: ': '2009-05-11 09:19:37': java.lang.NumberFormatException: For input string: ""'


Which I don't understand at all; dateDate (java.util.Date), dateStr (String), timeStr (String) and dateTimeStr (String) are all declared in the processing method, NOT at the class level.

Maybe I should move the declaration of the SimpleDateFormat into the processing method? Or synchronize the date parse?


I'm kind of lost here; any help appreciated!!

Dave



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to