Me da la impresión que estás utilizando mal la sesión. Deberías hacer la comparación de
lm con
null después de obtener el objeto
lm desde la sesión.
Digamos, algo así:
Código:
sesion = request.getSession();
List lm = (List) sesion.getAttribute("lista");
if(lm == null) {
lm = ... // Acá creas el objeto lm y le asignas lo que quieras
sesion.setAttribute("lista", lm); //guardás el objeto lm en la sesion
}
// Seguis con la ejecucion
La idea general es
a) Obtenemos la sesión del usuario. Si no existe una sesion con el usuario, entonces se crea automáticamente.
b) Obtenemos la lista desde la sesión del usuario. Si no existe una lista en la sesión, entonces el método getAttribute devuelve null.
c) Vemos si en lm tenemos el valor null. Si tiene null, es porque no había una lista en la sesión, y por ello tenemos que crear una nueva lista y guardarla en la sesión.
d) Si no tenia null, seguimos operando normalmente.
Espero que te sea de ayuda.