Avatar billede niwikr Nybegynder
21. oktober 2004 - 12:22 Der er 3 kommentarer og
1 løsning

Session object

Jeg sidder og roder med et lille problem. Min applikation kaster til tider en nullpointerexception i forbindelse med brug af et object i session. Jeg prøver nu at finde ud af hvorfor, men der er en ting der undrer mig.

Når jeg henter objektet f.eks.


AnObject anobject = (AnObject)session.getAttributte("anobject");


er der ikke nogle problemer, der kastes ingen exception fra denne linie.
Exceptionen kommer først når jeg forsøger at bruge objektet f.eks.

ArrayList list = anobject.someMethodThatGetsAList();

og det er sådan set ligemeget hvad jeg forsøger at gøre med anobject, så får jeg så min nullpointerException.

Måske det hænger sammen med at anobject simpelthen (af en eller anden grund) ikke eksisterer i session længere.
Jeg har prøvet at hente et objekt i session som jeg med sikkerhed ved IKKE eksisterer og her oplever jeg det samme:

jeg får ingen exception når jeg kalder object selvom det ikke eksiterer f.eks:

NonExistingObject nonexistingobject = (NonExistingObject)session.getAttributte("nonexistingobject");

men først når jeg forsøger at bruge objektet kommer exceptionen. feks:

nonexistingobject.someMethod();


Hvorfor får jeg ikke en Exeption når jeg forsøger at hente et object i session der ikke eksister? (Det burde jeg vel), men først nå jeg forøger at bruge objektet.

Og hvad er det jeg får får fra session istedet, når det nu ikke kaster en exception? (Et eller andet må anobject vel blive tildelt??)
Avatar billede arne_v Ekspert
21. oktober 2004 - 12:26 #1
AnObject anobject = (AnObject)session.getAttributte("anobject");

er valid med null !

Så prøv:

AnObject anobject = (AnObject)session.getAttributte("anobject");
if(anobject==null) {
  anobject = new AnObject();
  session.setAttributte("anobject", anobject);
}
Avatar billede niwikr Nybegynder
28. oktober 2004 - 14:33 #2
Jep klart nok.
Avatar billede arne_v Ekspert
28. oktober 2004 - 15:19 #3
Og et svar såfremt det virker
Avatar billede arne_v Ekspert
06. november 2004 - 17:58 #4
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester