ese-unibe-ch / ese2010-team2

Project ESE 2010 - Team 2
5 stars 0 forks source link

Bootstrap mit XML -- Null Pointer Exceptions #116

Closed jruef closed 13 years ago

jruef commented 13 years ago

Hallo Leute, habe bemerkt, dass wenn man unsere eingnen sample daten nicht lädt, sondern nur einen das xml file importiert im bootstrap man eine null pointer exceptions bekommt. Ich sehe nicht ganz wo das Problem liegt. Leider begreife ich nicht ganz wie der XML Importer Daten zu den verschiedenen ArrayLists im DB manager hinzufügt. Um das ganze zu reproduzieren könnet ihr einfach beim TestBootStrap die Annotation @OnApplicationStart enkommentieren und dafür beim BootStrap auskommentieren.

bjorndown commented 13 years ago

Ich weiss wieso: Im XMLParser.java wird in Zeile 215 die Methode question.setLastChanged() aufgerufen. Diese Methode ist in zweierlei Hinsicht speziell:

Genau da liegt auch der Hund begraben: Die Frage wird erst in Zeile 217 im XMLParser.java in den DbManager eingefügt. Weil setLastChanged aber vorher aufgerufen wird und über den DbManager auf sich selbst zugreifen will, gibt es natürlich die NullPointerException.

Schnelles work-around: Den Aufruf von setLastChanged hinter den Aufruf von DbManager.addQuestion verschieben.

Besser wäre es wohl, die Methode setLastChanged umschreiben.

bjorndown commented 13 years ago

Vielleicht kann ja gerade noch jemand erklären, warum in setLastChanged dann die Methode setLastChangedDate aufgerufen wird -- warum dieser Umweg?!

astriffe commented 13 years ago

habe die methoden umgeschrieben - war in einem schwachen moment wohl nicht auf die idee gekommen, eine abstrakte methode zu verwenden ;-) nun ist jedoch noch ein anderer - wie ich finde komischer - fehler in der methode enthalten (Siehe TODO-kommentar im XMLParser.java) Aber: Die Frage (oder Antwort) wird doch gleich beim Aufruf des Konstruktors in den DbManager aufgenommen (falls man kein false mitgibt)!? Folglich sollten ja auch auf jedes Objekt vom DbManager aus zugegriffen werden können..!?

bjorndown commented 13 years ago

äh bei mir hats kein TODO im XMLParser.java

astriffe commented 13 years ago

sorry, noch nicht gepusht =) wäre jetzt online...

bjorndown commented 13 years ago

Computer says no.. cough

Git pull sagt up-to-date und github zeigt meinen commit noch als letzten an..

astriffe commented 13 years ago

git log ergibt: commit dad234c3f80a992b68f1dbd2ea978f75571d59a9 Merge: 3552127 548032d Author: Alexander Striffeler alexanders@bluewin.ch Date: Tue Nov 30 16:12:42 2010 +0100

Merge branch 'unstable' of github.com:ese-unibe-ch/ese2010-team2 into unstab

commit 35521274d775065c41db5916dd3090de64756a68 Author: Alexander Striffeler alexanders@bluewin.ch Date: Tue Nov 30 16:11:17 2010 +0100

see issue 116
bjorndown commented 13 years ago

hm..komisch, jetzt ists da, angeblich seit 18 min..

bjorndown commented 13 years ago
1: a.setDate(creationDate);
2: // TODO: Wieso funktioniert dieser Aufruf und der untere nicht??
3:DbManager.getInstance().getQuestionById(qId).setLastChanged(lastChangedDate);
4: // a.setLastChanged(lastChangedDate);

Also der in Zeile 3 klappt und der in Zeile 4 nicht?

astriffe commented 13 years ago

Genau

jruef commented 13 years ago

Könne wir diesen Bug eigentich schliesen? Also ist er gefixt, wenn halt auch nicht so wunderschön ;)?

astriffe commented 13 years ago

ich denke ja... wir sollten einfach im hinterkopf behalten, dass dort noch eine mögliche baustelle ist..