Herzkasper am frühen morgen


(btw. für alle tl;dr – Fans gibt es weiter unten einen Zusammenfassung).

Eclipse Fehlermeldung: An error has occured. Se the log file <WORKSPACE>/.metadata/.log

So begrüßte mich Eclipse am heutigen frühen morgen.

Und das was in der Log stand half auch nicht wirklich weiter:

!ENTRY org.eclipse.ui 4 4 2013-01-29 08:58:46.123
!MESSAGE Unable to create part

!ENTRY org.eclipse.core.filebuffers 4 0 2013-01-29 08:58:46.123
!MESSAGE The file does not exist.
!STACK 1
org.eclipse.core.runtime.CoreException: The file does not exist.
        at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.create(ResourceFileBuffer.java:237)
(…)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
!SUBENTRY 1 org.eclipse.core.filebuffers 4 0 2013-01-29 08:58:46.124
!MESSAGE The file does not exist.

Also versucht, eclipse in der Konsole mit dem “-celan” switch aufzurufen. Zwar sah es so aus, als wenn Eclipse in diesem Fall mehr tut – aber das wirkte nur so. Nach ein wenig mehr gerödele im Hintergrund kam auch diese Instanz zum Ergebnis, dass es nicht starten könne, und sich lieber mit identischem Eintrag in der Log verabschiedet.

Aber es gibt ja auch noch das Internet: Im java-forum rät man zum erstellen eines neuen Workspaces inklusive anschließendem Import – nur wie, wenn Eclipse gar nicht erst soweit kommt? Außerdem haben sich bei mir in ~/slab/eclipse bestimmt an die 30 Projekte angesammelt – geht es nicht auch einfacher?

Auf eclipse.org findet sich leider nichts außer einem bugfix für ein Problem aus 2007. Aber ein Blog weiß rat:

When eclipse says: An error has occurred. See the log file .metadata/.log.

Delete: /YOUR PATH TO WORKSPACE/.metadata/.plugins/org.eclipse.core.resources

Nur, wie auch schon einige Kommentare auf dem Blog sagten: Danach mag Eclipse zwar wieder in das Standard-Workspace starten, aber alle Dateien sind weg. Eclipse begrüßt einem dann nämlich mit:

“Could not open the editor: org.eclipse.ui.PartInitException: The file does not exist.”

Irgendwie auch logisch – steht doch in der org.eclipse.core.resources, wo welche Dateien zu finden sind. Also dann doch wieder händisches importieren. Doof nur, dass das noch irgendwie was weiteres zerschießt: Meine Projekte wurden nicht mehr als solche erkannt, ergo ließen sie sich auch nicht ohne weiteres importieren! Gott sei Dank weiß ich: “Wenn irgendwo löschen steht, heißt das: erstmal verschieben”. Also die “org.eclipse.core.resources” zurück geholt.

Dennoch muss der Blog nicht so verkehrt liegen, immerhin ist die Klasse, die Probleme bereitet, die ResourceFileBuffer.java – und die Klasse selbst wird ja wohl funktionieren. Also müsste es irgendetwas an den Dateien selbst sein. Kurzes überprüfen der Lese und Schreibberechtigungen brachte nichts interessantes zu Tage.

Aber siehe da: im org.eclipse.core.resources-Package befindet sich eine .snap-Datei. Klingt nach “Snapshot” und ist es auch – eine Art Logdatei, die zur Laufzeit geschrieben wird, und bei einem Absturz dafür sorgen soll, dass Dateien – auch möglichst mit letzten (ungesicherten) Änderungsstand wieder hergestellt werden können.

Warum Eclipse beim letzten schließen dachte, dass es am Abstürzen war, weiß ich nicht. Da ich aber vorher sicher alles gespeichert, commited und in ein Repository gepusht habe, sollte diese Datei unnötig sein. Also gelöscht verschoben, und siehe da: Eclipse startet wieder – ganz ohne Probleme – und wie es scheint ohne irgendeine kaputte Datei. Aber: Die offenen Dateien, die Eclipse ja auch bei jedem Start wieder öffnet, sind verschwunden – ergo scheint auch das in der .snap zu stehen, und scheinbar hat es da beim Anlegen der Datei einen Fehler gegeben.

tl;dr?

Bei Startproblemen in Eclipse, die mit dem ResourceFileBuffer zu tun haben, könnte es helfen die Datei /.metadata/.plugins/org.eclipse.core.resources/.snap zu entfernen, welche den letzten Zwischenstand aller Dateien beinhaltet, und bei Fehlern dafür sorgt, dass der ResourceFileBuffer nicht alle zuletzt offenen Dateien wiederherstellen kann. Aber nicht gleich löschen – sollte das nämlich nicht helfen, könntet ihr vielleicht in Probleme laufen – daher bei solchen Ratschlägen immer erstmal nur verschieben, und gucken ob es hilft! 😉

Advertisements

Please comment. I really enjoy your thoughts!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s