[jboss-user] [JBoss Seam] - ConcurrentModificationException

tony.herstell@gmail.com do-not-reply at jboss.com
Tue Jan 8 03:54:52 EST 2008


I have some markup:


  | 			<f:view>
  | 				<a4j:form styleClass="general_form">
  | 
  | 					<fieldset class="general_form_fieldset">
  | 
  | 						<legend class="general_form_legend">
  | 							<h:outputText value="#{messages.booking_fieldset_resources}" />
  | 						</legend>
  | 
  | 						<s:validateAll>
  | 							<div>
  | 								<center>
  | 									<rich:dataTable id="resourceAddedTable" var="eachResource" value="#{bookingResources}">
  | 										<rich:column>
  | 											<f:facet name="header">
  | 												<h:outputText value="#{messages.booking_resource_column_header}" />
  | 											</f:facet>
  | 											<h:outputText value="#{messages[eachResource.inlLabel]}" />
  | 										</rich:column>
  | 										<rich:column>
  | 											<f:facet name="header">
  | 												<h:outputText value="#{messages.booking_action_column_header}" />
  | 											</f:facet>
  | 											<a4j:commandButton styleClass="general_form_button"
  | 												action="#{bookingController.removeResource(eachResource)}"
  | 												value="#{messages.general_button_remove}" type="submit" reRender="resourceAddedTable">
  | 											</a4j:commandButton>
  | 										</rich:column>
  | 									</rich:dataTable>
  | 								</center>
  | 							</div>
  | 
  | 							<div>
  | 								<rich:messages id="resourceAdditionAttemptMessages" errorClass="error" warnClass="warn"
  | 									infoClass="info" for="resourceAddedTable" />
  | 							</div>
  | 
  | 							<div>
  | 								<br />
  | 							</div>
  | 
  | 							<div>
  | 								<a4j:commandButton id="addResidentTrainer" value="#{messages.resource_resident_trainer}"
  | 									action="#{bookingController.addResource('resource_resident_trainer')}"
  | 									reRender="resourceAddedTable, resourceAdditionAttemptMessages" />
  | 

The table is simple updated by the back end when you click add.

When you click remove its supposed to remove the item from the list.

However.. I get 

  | Caused by: java.util.ConcurrentModificationException
  | 	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
  | 	at java.util.AbstractList$Itr.next(AbstractList.java:343)
  | 


  |     @DataModel
  |     private List<ResourceKind> bookingResources;
  | 
  | ...
  | 
  | 	/* (non-Javadoc)
  | 	 * @see nz.co.selwynequestriancentre.action.booking.BookingController#addResource(java.lang.String)
  | 	 */
  | 	public String addResource(String resource) {
  | 		log.info(">addResource " + resource);
  | 		ResourceKind resourceKind = resourceHelper.getResourceKind(resource);
  | 		boolean isAlreadyAdded = false;
  | 		for (ResourceKind eachExistingResourceKind : bookingResources) {
  | 			if (resourceKind.getInlLabel().equalsIgnoreCase(eachExistingResourceKind.getInlLabel())) {
  | 				facesMessages.addToControlFromResourceBundle("resourceAdditionAttemptMessages", FacesMessage.SEVERITY_ERROR, "booking_resource_already_added");
  | 				isAlreadyAdded = true;
  | 			}
  | 		}
  | 		if (!isAlreadyAdded) {
  | 			bookingResources.add(resourceKind);
  | 		}
  |         log.info("<addResource");
  | 	    return null;
  |     }
  |     
  | 	/* (non-Javadoc)
  | 	 * @see nz.co.selwynequestriancentre.action.booking.BookingController#removeResource(nz.co.selwynequestriancentre.model.entity.Resource.ResourceKind)
  | 	 */
  | 	public String removeResource(ResourceKind resourceKind) {
  | 		for (ResourceKind eachExistingResourceKind : bookingResources) {
  | 			if (resourceKind.getInlLabel().equalsIgnoreCase(eachExistingResourceKind.getInlLabel())) {
  | 				bookingResources.remove(resourceKind);
  | 			}
  | 		}
  | 		return null;
  | 	}
  | ...
  | 

Any ideas?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4117811#4117811

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4117811



More information about the jboss-user mailing list