• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Fehler in der Moving Map (null pointer exception)

olisi

Geocacher
In der Version 1.1.2587-java (Linux) traten bei mir Fehler in der Moving Map auf (weisse Flächen wurden nicht ausgefüllt, obwohl aktiviert; markierte Caches wurden nicht angezeigt).

Folgendes hatte ich vorher gemacht:

1. In der Liste nach bestimmten Caches (Alles selbst angelegte Wegpunkte) gesucht
2. Alle markiert
3. In die Kartenansicht gewechselt.

Auf der Konsole wurde folgende Fehlermeldung ausgegeben:

Code:
java.lang.NullPointerException
        at CacheWolf.navi.MovingMap.loadBestMap(Unknown Source)
        at CacheWolf.navi.MovingMap.updatePosition(Unknown Source)
        at CacheWolf.navi.MovingMap.mapMoved(Unknown Source)
        at CacheWolf.navi.MovingMap.moveScreenXYtoLatLon(Unknown Source)
        at CacheWolf.navi.MovingMap.setCenterOfScreen(Unknown Source)
        at CacheWolf.navi.MovingMap.myExec(Unknown Source)
        at CacheWolf.MainTab.SwitchToMovingMap(Unknown Source)
        at CacheWolf.navi.GotoPanel.switchToMovingMap(Unknown Source)
        at CacheWolf.navi.GotoPanel.onEvent(Unknown Source)
        at ewe.ui.Control.postEvent(Control.java)
        at ewe.ui.Control.notifyAction(Control.java)
        at ewe.ui.ButtonControl.fullAction(ButtonControl.java)
        at ewe.ui.ButtonControl.fullAction(ButtonControl.java)
        at ewe.ui.ButtonControl.penReleased(ButtonControl.java)
        at ewe.ui.Control.penClicked(Control.java)
        at ewe.ui.Control.onPenEvent(Control.java)
        at ewe.ui.Control.onEvent(Control.java)
        at ewe.ui.Control.postEvent(Control.java)
        at ewe.ui.Window.doPostEvent(Window.java)
        at ewe.ui.Window$windowThread.run(Window.java)
        at ewe.sys.mThread.run(mThread.java)
        at ewe.sys.Coroutine.run(Coroutine.java)
 

pfeffer

Geowizard
Das ist ja eine perfekte Fehlerbeschreibung!
Leider enthält sie keine Zeilennummern - weiß jemand warum nicht?
Ich habe das versucht nachzustellen, bei mir in Windows und Eclipse (also java-version) bekomme ich keine Exception - es funktioniert einfach.

Habe mir den Quelltext an der Stelle angeschaut, vielleicht helfen ein paar Fragen, die Fehlerursache einzugrenzen:
1. kannst Du das reproduzieren?
2. Hast Du
a) ein Zentrum (Anwendung/Zentrum) gesetzt?
b) einen Cache mit Koordinaten ausgewählt?
c) die Zielposition gesetzt?

Gruß,
Pfeffer.
 
OP
O

olisi

Geocacher
Die Ausgabe in der Konsole tauchte nur beim ersten Start des CW nach der Installation auf.

Das Datenverzeichnis hatte ich beim Start festgelegt, allerdings liegen die Karten nicht unter diesem Verzeichnis, so dass ich eines manuell auswählen musste.
In dem Datenverzeichnis liegen die Profile älterer 1.1.xxxx Versionen --> Zentrum war gesetzt.

Ich habe jetzt nochmal ein bisschen rumgespielt und folgendes festgestellt (Fehlerausgabe in der Konsole erscheint nicht mehr)

1. "Weisse Flächen füllen" kann man zwar abschalten, aber nicht mehr über den entsprechenden Button einschalten.
2. "Weisse Flächen füllen" wird wieder eingeschaltet, wenn der "Weisse Flächen füllen" Button deaktiviert/durchgestrichen ist und anschließend der Button "Markierte Caches anzeigen" gedrückt wird.
3. Nach dem Rumspielen (Caches in der Liste suchen und markieren--> Moving Map) kommt jetzt bei jedem Cache, den ich in der Liste auswähle: Could not read cache details for cache: xyz.

Hoffe das hilft etwas und danke im Voraus.

olisi
--------------
EDIT: Ergänzung zu Punkt 3:
Ausgabe in der Konsole: Problem creating index file ewe.io.IOException: Could not write to file!
Indexfile ist danach zerstört --> Index neu erstellen führt zu einer total durcheinandergewürfelten Liste.
Festplatte ist nicht voll und war bis heute i.O., Schreibrechte sind i.O..
In /var/log/messages tauchen keine Fehlermeldungen bzgl. einer defekten Platte oder Schreibproblemen auf.
 

pfeffer

Geowizard
nur um sicher zu gehen: Den Fehler, weswegen Du diesen Thread eröffnet hast, kannst Du leider nicht reproduzieren, richtig?

Gruß,
Pfeffer.
 
OP
O

olisi

Geocacher
Was ich nachstellen kann, ist, dass das Füllen der weißen Flächen nicht funktioniert (s.o.).

Leider hat es mir, wie beschrieben, beim Rumprobieren die index.xml zerschossen, so dass ich die genaue Konfiguration nicht mehr nachstellen kann.
Ich muss jetzt allerdings ehrlich zugeben, dass das index.xml- Problem eine höhere Prio genießt, da ich ansonsten meinen für heute geplanten Cacheausflug streichen kann. Habe jetzt noch nicht zu diesem "neuen" Thema gesucht. Ist es bekannt? Soll ich einen neuen Thread aufmachen?
Habe CW nochmal neue installiert --> Index neu erstellt --> Sieht alles wild durcheinander aus. Das automatische Speichern nach der Indexerstellung bleibt gleich zu Anfang mit der oben beschriebenen Fehlermeldung hängen.
 

MiK

Geoguru
Was meinst Du denn mit "wild durcheinander"? Allerdings müsste erst einmal geklärt werden, warum die index.xml nicht geschrieben werden kann. Liegt noch eine index.bak im Profilverzeichnis?
 

arbor95

Geoguru
Das mit der Schaltfläche für das "Weisse Flächen" hatte ich auch schon mal bemängelt.
Ist aber leider noch nicht geändert. (wesentlich: Init aus pref.xml)
Vielleicht muss ich es noch selber machen. Wenn man allerdings weiss, wie es tickt, dann klickt man eben einmal 2 mal! Danach passt es dann.


p.s.: Index erstellen funktioniert einwandfrei (bis das Gegenteil bewiesen ist)

pps: Warum musst du unbedingt "nur markierte Cache" anzeigen haben ? (Falls du mit CW 1.0 arbeitest, dann wechsel auf 1.1)
 

MiK

Geoguru
araber95 schrieb:
pps: Warum musst du unbedingt "nur markierte Cache" anzeigen haben ? (Falls du mit CW 1.0 arbeitest, dann wechsel auf 1.1)
Die benutzten Funktionen zeigen deutlich, dass er 1.1 benutzt.
 
OP
O

olisi

Geocacher
araber95 schrieb:
Das mit der Schaltfläche für das "Weisse Flächen" hatte ich auch schon mal bemängelt.
Ist aber leider noch nicht geändert. (wesentlich: Init aus pref.xml)
Vielleicht muss ich es noch selber machen. Wenn man allerdings weiss, wie es tickt, dann klickt man eben einmal 2 mal! Danach passt es dann.

Also bei mir muss ich immernoch den Button markierte Caches drücken --> scheint was anderes zu sein.

araber95 schrieb:
p.s.: Index erstellen funktioniert einwandfrei (bis das Gegenteil bewiesen ist)

Also bei mir geht es nicht:
In der Liste sollten über 1000 Caches sein, es sind aber nur 56.
Zudem habe ich die Lösungen für Mysterys als eigene Wegpunkte unter den eigentlichen Caches angelegt. Diese hängen jetzt in der Luft und sind nicht mehr den Caches zugeordnet.

Eine index.bak existiert im Profilverzeichnis leider nicht.

Zudem funktioniert das automatische Speichern nach dem Erstellen nicht. --> ich habe es nach ca. 15 min ohne Veränderung des Fortschrittbalkens abgebrochen.

Wenn ich CW schließe und beim nächsten Mal starte, fehlt die pref.xml --> muss das Datenverzeichnis nochmal neu auswählen.

araber95 schrieb:
pps: Warum musst du unbedingt "nur markierte Cache" anzeigen haben ? (Falls du mit CW 1.0 arbeitest, dann wechsel auf 1.1)

Ich muss keine markierten Caches angezeigt haben, aber ohne diesen Button zu drücken, werden bei mir die weissen Flächen nicht gefüllt.
Unabhängig davon finde ich die Funktion ziemlich gut.
Zur Version siehe Anfang des Threads.
 

pfeffer

Geowizard
erhälst Du immer noch den Fehler, dass die index.xml nicht geschrieben werden kann? Falls ja: Das Problem muss als erstes gelöst werden.
Wenn Dir weniger Caches angezeigt werden als Du eigentlich haben solltest, dann hast Du vielleicht einen Filter gesetzt, der viele Caches ausblendet?

Gruß,
Pfeffer.
 
OP
O

olisi

Geocacher
pfeffer schrieb:
erhälst Du immer noch den Fehler, dass die index.xml nicht geschrieben werden kann? Falls ja: Das Problem muss als erstes gelöst werden.

Erst mal vielen Dank für die Unterstützung :gott:

Das Problem besteht immernoch. Allerdings scheint es damit zusammenzuhängen, dass der Index nicht korrekt erstellt wird.
Ich habe es nämlich mit einem anderen Profil probiert, dort funktioniert das Speichern einwandfrei.

pfeffer schrieb:
Wenn Dir weniger Caches angezeigt werden als Du eigentlich haben solltest, dann hast Du vielleicht einen Filter gesetzt, der viele Caches ausblendet?

Gruß,
Pfeffer.

Ist leider nicht so. Ich hatte es mit einer jungfräulichen CW- Installation ausprobiert und sicherheitshalber den Filter aufgehoben.
 

arbor95

Geoguru
dann lass mir doch mal das schrottige profil zukommen. ich möchte gerne mal sehen, was CW (index erstellen,..) so aus dem Tritt bringt.
 

arbor95

Geoguru
Das index.xml ist erst mal gelöst. ich habe die datei mit der windows exe neu erstellt.
In der java - Version kommt ein
java.lang.OutOfMemoryError: Java heap space
at ewe.io.TextReader.readAll(TextReader.java)
at CacheWolf.Rebuild.getCacheDetails
nach 1122 Wegpunkten/Caches

Warum das Programm da nicht vollständig aufgibt, sondern so weitermacht, als ob nichts gewesen wäre entzieht sich meiner Kenntnis. Mit entsprechenden Startparametern sollte dann die java-Version auch tun.

Die obigen Meldungen ohne Zeilennummern dürften die Folgeerscheinungen sein.

Es fehlt also der Abbruch des Programms/teils mit entsprechender Meldung!

Nachtrag 1: java mit CacheWolf.sh aufgerufen oder windows/java mit
start javaw -Xms64M -Xmx1024M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf -c pref.xml
erzeugt den index auch. Nur der direkte Aufruf der jar hat zu wenig memory zur Folge!
 
OP
O

olisi

Geocacher
Vielen Dank für die Unterstützung.

Habe den CW über die Cachewolf.sh aufgerufen, wobei ich die Speicherplatzreservierung so ändern musste (1024M sind zuviel für meinen schwachbrüstigen Läppi).

java -Xms128M -Xmx768M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf &

Jetzt ist die Liste nach der Indexerstellung zwar schon bedeutend länger, aber immernoch nicht vollständig. Das Speichern klappt leider auch noch nicht :hilfe:

Gibt es eine feste maximale Grenze für die Cacheanzahl bei der Java- Version, die nicht überschritten werden darf?

Vielen Dank für die index.xml, aber so wie ich Dich verstanden habe, löst sie auch nicht das Problem, dass der CW "heimlich" aussteigt.
 

arbor95

Geoguru
olisi schrieb:
Gibt es eine feste maximale Grenze für die Cacheanzahl bei der Java- Version, die nicht überschritten werden darf?
Nein
olisi schrieb:
Vielen Dank für die index.xml, aber so wie ich Dich verstanden habe, löst sie auch nicht das Problem, dass der CW "heimlich" aussteigt.
So ist es.

Ich versuch mal dran zu arbeiten,aber ich bin da auch nicht der Guru! Versprechen kann ich leider nichts.
 
OP
O

olisi

Geocacher
Ich habe inzwischen den Speicher des Läppis auf 2,5GB aufgemotzt, nur leider funktioniert es unter Linux auch mit den Einstellungen

Code:
java -Xms128M -Xmx1024M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf &

java -Xms128M -Xmx2048M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf &

java -Xms64M -Xmx768M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf &

nicht.

Noch irgendwelche Ideen?
Danke im Voraus
 
OP
O

olisi

Geocacher
Hab's gerade nochmal mit der aktuellen Version 1.1.2642 probiert:

Hier funktioniert`s --> Problem scheint gelöst --> Vielen Dank :gott:
 
OP
O

olisi

Geocacher
Meldung zurück:

Ich kann jetzt zwar den Index neu erstellen, aber auf der Konsole erscheint wieder folgende Fehlermeldung :

Code:
java.lang.NullPointerException
        at CacheWolf.navi.MovingMap.loadBestMap(Unknown Source)
        at CacheWolf.navi.MovingMap.updatePosition(Unknown Source)
        at CacheWolf.navi.MovingMap.mapMoved(Unknown Source)
        at CacheWolf.navi.MovingMap.moveScreenXYtoLatLon(Unknown Source)
        at CacheWolf.navi.MovingMap.setCenterOfScreen(Unknown Source)
        at CacheWolf.navi.MovingMap.myExec(Unknown Source)
        at CacheWolf.MainTab.SwitchToMovingMap(Unknown Source)
        at CacheWolf.navi.GotoPanel.switchToMovingMap(Unknown Source)
        at CacheWolf.navi.GotoPanel.onEvent(Unknown Source)
        at ewe.ui.Control.postEvent(Control.java)
        at ewe.ui.Control.notifyAction(Control.java)
        at ewe.ui.ButtonControl.fullAction(ButtonControl.java)
        at ewe.ui.ButtonControl.fullAction(ButtonControl.java)
        at ewe.ui.ButtonControl.penReleased(ButtonControl.java)
        at ewe.ui.Control.penClicked(Control.java)
        at ewe.ui.Control.onPenEvent(Control.java)
        at ewe.ui.Control.onEvent(Control.java)
        at ewe.ui.Control.postEvent(Control.java)
        at ewe.ui.Window.doPostEvent(Window.java)
        at ewe.ui.Window$windowThread.run(Window.java)
        at ewe.sys.mThread.run(mThread.java)
        at ewe.sys.Coroutine.run(Coroutine.java)

In der Moving Map lässt sich das Füllen der weißen Flächen wieder nicht aktivieren :hilfe: --> wahrscheinlich wieder ein Folgefehler.
 

arbor95

Geoguru
Hat ja auch noch niemand geschrieben dass das Problem mit Version soundso behoben ist.

Ich kenne zwar die entsprechende Codezeile die das Problem auslöst, aber per Programm ist da nichts zu löten.

Wenn du nach diesen Aktionen das Programm beendest und CW neu startest dann solltest du mit den "weissen" Flächen kein Problem haben.


Ansonsten : Mach kleinere Profile, wenn es geht.
 
Oben