I managed to isolate the isolate the JRebel error - but I could not establish that JRebel is the cause of the ConcurrentModificationException.
I will post the full stacktrace when I see the problem again, but that could be a long wait. It looks like I am the only one seeing this error. So I am keeping my finger cross that it won't manifest in the production server. For those who are interested, below is the cause of the JRebel error. JSP: <stripes:form action="test.action" method="post"> <stripes:select name="user.timeZoneName"> <stripes:options-collection collection="${timeZoneList}" value="timeZone.ID" label="description"/> </stripes:select> </stripes:form> ActionBean: @UrlBinding("/test.action") public class TestActionBean extends UserProfileBaseActionBean { @DefaultHandler public Resolution view() { List<TimeZoneSelect> timeZoneList = TimeZoneSelect.getTimeZoneList(); getContext().getRequest().setAttribute("timeZoneList", timeZoneList); return new ForwardResolution("/jsp/test.jsp"); } } Util Class: /** * This class is a container for associating a TimeZone with a long description to facilitate dropdown * selection of Time Zones. * <br/> * This class provides static method {@code getTimeZoneList} which returns a list of statically constructed * TimeZoneSelect objects. * * @author yee */ public class TimeZoneSelect { TimeZone timeZone; String tzName; String description; public TimeZoneSelect(TimeZone timeZone, String description, String tzName) { this.timeZone = timeZone; this.description = description; this.tzName = tzName; } static List<TimeZoneSelect> tzlist = new ArrayList<TimeZoneSelect>(); static { String[] timeZoneIds = TimeZone.getAvailableIDs(); Date date11 = new Date(); for (int i = 0; i < timeZoneIds.length; i++) { TimeZone timezone = TimeZone.getTimeZone(timeZoneIds[i]); String tzName = timezone.getDisplayName(timezone.inDaylightTime(date11), TimeZone.LONG); String description = (timezone.getRawOffset() < 0 ? "GMT " : "GMT +") + new DecimalFormat("00").format(timezone.getRawOffset() / (60 * 60 * 1000)) + ":" + new DecimalFormat("00").format(Math.abs(timezone.getRawOffset() / (60 * 1000)) % 60) + " | " + timezone.getID() + " [" + tzName + "]"; tzlist.add(new TimeZoneSelect(timezone, description, tzName)); } } public static List<TimeZoneSelect> getTimeZoneList() { return tzlist; } //accessor methods omitted. ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ Stripes-users mailing list Stripes-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/stripes-users