[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Remove item from CMR

dani-cas do-not-reply at jboss.com
Wed Dec 20 12:50:26 EST 2006


This should be fairly easy, yet I am getting this exception when removing a item from a relation that is working fine.
I have the following code:

  | public boolean borrarProceso(Integer id, String tipo,  String userName){
  | 		
  | 		InitialContext ic = null;
  | 		boolean encontro = false;
  | 		AbogadoBeanLocalHome home;
  | 		AdministrativoBeanLocal mover = null;;
  | 		try {
  | 			ic = new InitialContext();
  | 			home = (AbogadoBeanLocalHome) ic.lookup("AbogadoBeanLocal");
  | 			System.out.println("en cambiarAbogadoEnProceso obtengo interface home del old");
  | 			AbogadoBeanLocal abog = home.findByPrimaryKey(userName);
  | 			Collection administrativos = abog.getProcesosAdministrativos();
  | 			
  | 			//Collection administrativosP =  new ArrayList();
  | 			//Quiro el proceso que quiero
  | 			Iterator it = administrativos.iterator();
  | 			System.out.println("tengo procesos: "+administrativos.size());
  | 			while(it.hasNext()){
  | 				AdministrativoBeanLocal proc = (AdministrativoBeanLocal) it.next();
  | 				if(id.compareTo(proc.getId())!=0){
  | 					System.out.println("Proceso: "+proc.getId()+" estoy buscando el: "+id);
  | 					//guardo todos con id diff
  | 					//administrativosP.add(proc);
  | 				}else{
  | // HERE IS THE IMPORTANT STUFF
  | 					encontro = true;
  | 					//seleccion el unico con id y lo guardo
  | 					mover = (AdministrativoBeanLocal) proc;
  | 					administrativos.remove(mover);
  | 					mover.remove();
  | //ENDS HERE
  | 				}
  | 				
  | 			}
  | 			if(encontro){
  | 				System.out.println("Ahora tengo uno menos: "+administrativos.size());
  | 			//Hago set de los nuevos procesos
  | 			abog.setProcesosAdministrativos(administrativos);
  | 				return true;
  | 			}else{
  | 				System.out.println("No encontro el proceso buscado");
  | 				return false;
  | 			}
  | 		}catch (NamingException e) {
  | 			// TODO Auto-generated catch block
  | 			e.printStackTrace();
  | 			return false;
  | 		} catch (FinderException e) {
  | 			// TODO Auto-generated catch block
  | 			e.printStackTrace();
  | 			return false;
  | 		} catch (EJBException e) {
  | 			// TODO Auto-generated catch block
  | 			e.printStackTrace();
  | 		}
  | 		System.out.println("Fallo borrado en centralbean");
  | 		return false;
  | 		
  | 	}
  | 
In breaf I search for a bean, and try to remove it, but I cant seem to make it work, sometimes the method works, but when I try to do it agoin the following eception is thrown:

  | 12:48:49,531 ERROR [STDERR] java.rmi.ServerException: RuntimeException; nested exception is: 
  | 	java.lang.IllegalStateException: Underlying collection has been modified
  | 12:48:49,531 ERROR [STDERR] 	at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:421)
  | 12:48:49,531 ERROR [STDERR] 	at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:209)
  | 12:48:49,531 ERROR [STDERR] 	at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136)
  | 12:48:49,531 ERROR [STDERR] 	at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.ejb.Container.invoke(Container.java:954)
  | 12:48:49,546 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 12:48:49,546 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  | 12:48:49,546 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  | 12:48:49,546 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Unknown Source)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:206)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:192)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
  | 12:48:49,546 ERROR [STDERR] 	at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
  | 12:48:49,546 ERROR [STDERR] 	at $Proxy64.borrarProceso(Unknown Source)
  | 12:48:49,546 ERROR [STDERR] 	at org.invias.struts.Service.borrarProceso(Service.java:192)
  | 12:48:49,546 ERROR [STDERR] 	at org.invias.struts.action.BorrarProcesoDeUsuarioAction.execute(BorrarProcesoDeUsuarioAction.java:40)
  | 12:48:49,546 ERROR [STDERR] 	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
  | 12:48:49,546 ERROR [STDERR] 	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
  | 12:48:49,546 ERROR [STDERR] 	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
  | 12:48:49,546 ERROR [STDERR] 	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
  | 12:48:49,546 ERROR [STDERR] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  | 12:48:49,906 ERROR [STDERR] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  | 12:48:49,906 ERROR [STDERR] 	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
  | 12:48:49,906 ERROR [STDERR] 	at java.lang.Thread.run(Unknown Source)
  | 12:48:49,906 ERROR [STDERR] Caused by: java.lang.IllegalStateException: Underlying collection has been modified
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.plugins.cmp.jdbc.bridge.RelationSet$1.next(RelationSet.java:404)
  | 12:48:49,906 ERROR [STDERR] 	at org.invias.ejb.CentralBean.borrarProceso(CentralBean.java:596)
  | 12:48:49,906 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 12:48:49,906 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  | 12:48:49,906 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  | 12:48:49,906 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Unknown Source)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ws.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:64)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
  | 12:48:49,906 ERROR [STDERR] 	at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
  | 12:48:49,906 ERROR [STDERR] 	... 47 more
  | 12:48:49,906 INFO  [STDOUT] ha fallado el borrado
  | 
I am allmost sure that I am deleting the item wrongly, but I have looked every where for a way to erase beans in a CMR but I havent found much.

All the help is greatly appreciated.

Daniel

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

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



More information about the jboss-user mailing list