Wenas
Un arrayList no es mas que una direccion de memoria. Lo que tiene pinta es que se esta haciendo un lio y esta 'añadiendo' los elementos de laux en vez de 'borrar la lista y crearla de nuevo' que es lo que tu quieres.
prueba a ponerla a null antes de asignarla
Código:
listaprincipal = null;
listaPrincipal = (List) session.getAttribute("listaprincipal");
Saludos.