Java - Tengo un problema al invalidar una sesion de un arraylist

   
Vista:

Tengo un problema al invalidar una sesion de un arraylist

Publicado por Juan Diego (6 intervenciones) el 03/08/2015 12:00:51
Tengo un problema al invalidar una sesion de un arraylist. Al hacer login meto la Sesion en un arrayList.
En el objeto sesion hay String SesionId, String usuario, int nivel de acceso.
Cuando lo envio al frontcontroler ... y recogo con un if su accion...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if ("cerrarSesion".equals(request.getParameter("accion"))){
	System.out.println("Pasa por cerrarSesion");
	ArrayList<Sesion> sesiones = (ArrayList<Sesion>)request.getServletContext().getAttribute("sesiones");
	Sesion se =
			new Sesion(request.getSession().getId(), (String)(request.getSession().getAttribute("usuario")), (Integer)request.getSession().getAttribute("nivel"));
 
	Iterator<Sesion> it = sesiones.iterator();
	Sesion aBorrar = null;
	while (it.hasNext()){
		Sesion temp = it.next();
		System.out.println("Aqui llega con temp " + temp);
		System.out.println("Aqui llega con se " + se);
		if (se.equals(temp)){
			aBorrar = temp;
		}
	}
	System.out.println("Esta sesion se va a Borrar" + aBorrar);
 
 
	System.out.println(sesiones);
	request.getSession().invalidate();
 
	sesiones.remove(aBorrar);
	response.sendRedirect("index.jsp");
	return;
}

Y el error que me da es
WARNING: StandardWrapperValve[frontControler]: PWC1406: Servlet.service() for servlet frontControler threw exception
java.util.ConcurrentModificationException


Soy algo nuevo la verdad en esto y es la primera vez que me sale este error y estoy parado.... no se que hacer.
Segun leo dice que estoy haciendo modificaciones mientras lo utilizo pero el array lo borro despues de usar el Iterator.

Muchas gracias a todos de antemano. Un saludito.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Tengo un problema al invalidar una sesion de un arraylist

Publicado por Juan Diego (6 intervenciones) el 04/08/2015 00:52:54
Me autorespondo. El problema no venia de este codigo si no de un dispacher anterior que inicializaba con un iterator. El iterator debe de ser que quedaba vivo como objeto y luego se quejaba.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar