2010-10-21

Memory Leak ...

Heute hatte ich einen Gedächtniseffekt der ganz besonderen Art:

Ein Kollege erzählte mir, er habe eine ClassCastException im PreferencesXMLConverter.
Muss man jetzt nicht unbedingt vestehen, wesentlich ist meine Reaktion darauf:

"Wie kann das, den Fehler habe ich doch neulich gefixt!"

Der Kollege weiter: "Der SystemIndependentJFrame kann nicht gecastet werden".

Meine Antwort: "Klar, der Cast auf FrameContainer ist weder richtig noch nötig.
Aber den hatte ich doch entfernt!".

Klare Erinnerung mit Ansage, also keinesfalls ein Deja-vu Effekt!
Ich kann mich genau erinnern, dass vor einer Weile ein Kollege kam und mir diesen
Fehler (den ein übrigens damals abwesender Kollege eingebaut hatte) gemeldet hat.
Ich hatte ihn dann (eben wegen der Abwesenheit des besagten Kollegen) gefixt.
Ich konnte mich genau erinnern, den Fehler erst kommentieren und dann meinem
Kollegen mailen zu wollen, ihn dann aber eben schnell selbst behoben zu haben.
Nichts mehr von gehört, alles Bingo. Musste so circa 1,5 Monate her sein.

Heute tritt der Fehler also wieder in Erscheinung, und ich wundere mich.
Naja, kann ja mal passieren, dass jemand ungeschickt einen alten Stand über
einen neueren in die Versionsverwaltung einspielt.

Also gehe ich auf die Suche nach meiner damaligen Korrektur. Und siehe: Weder
im Versionsverwaltungssystem, noch in unserer Fehlerdokumentation, noch auf meiner
PC-Festplatte (auf der ich eine eigene Versionsverwaltung zusätzlich einsetze) ist
irgendeine Spur der von mir durchgeführten Änderung zu finden.

Kann Erinnerung so dermaßen trügen???? Ich habe über zwei Stunden immer wieder
versucht, irgendwo (auch in älteren Versionen) eine Spur dieser Fehlerkorrektur
zu finden.
Aber noch viel schlimmer: Der Fehler selbst kann erst 14 Tage alt sein!
Alle älteren Stände haben den fehlerhaften Code noch gar nicht enthalten.

Ich müsste innerhalb der letzten 14 Tage sowohl die Entdeckung des Fehlers als
auch seine Korrektur geträumt haben, und das ziemlich realitätsgetreu.

Nach langem, langem Nachgrübeln habe ich mich entschieden, ganz wissenschaftlich
exakt vorzugehen, gemäß dem Motto meines scharfsinnigen Vorbildes Sherlock Holmes:
"Wenn man das Unmögliche abzieht, dann muss das, was übrig bleibt, die Lösung sein,
wenn es auch noch so unwahrscheinlich klingt" (Für Star Trek Kinogänger: Nein, der Spruch
stammt nicht von einem Vorfahren des Mr. Spock !)

Und so kam ich auf die einzige plausible Lösung:

Es handelt sich um ein Memory Leak.

Ein Leck in der Erinnerung. Nicht zu verwechseln mit einer Gedächtnislücke, eher im Gegenteil.

Das Leck in der Erinnerung funktioniert ähnlich einem Wurmloch. Es ist ein Bruch im
normalen Raum-Zeit-Kontinuum, der dafür sorgt, dass Gedächtnisinhalte (Memories)
zwischen zwei Paralleluniversen ausgetauscht werden.
In einem anderen Universum hatte ich den Fehler tatsächlich gefunden und behoben, und
diese Erinnerung schlüpfte nun durch das Leak in mein diesseitiges Hirn.

Ja, so muss es sein! Und da ich nun endlich die Erklärung hatte, konnte ich mich wieder
beruhigt meiner Arbeit zuwenden ...

1 Kommentar:

Dennis hat gesagt…

Hahaaa, noch ein paar weitere dieser "Begegnungen" und du kannst darüber ein Buch schreiben :D

Ich denke mal, dass dir hier auch der Film "Inception" sehr zusagen würde ;)