cfprefsd liefert veraltete Daten

wegus

wegus

MU Team
Thread Starter
Dabei seit
13.09.2004
Beiträge
19.698
Reaktionspunkte
7.551
Moin,

ich bin gerade über etwas gestolpert und frage mich was der Sinn dahinter sein soll:

Ich schreibe eine Java App und speichere Kerndaten mit dem Preferences Objekt. Das speichert unter OS X in den Preferences im Library Ordner des users und auf Windows in der Registry.

Wie das so ist beim Entwickeln, habe ich die Belegung der Parameter hier und da mal geändert. Auf Windows kein Problem, auf dem Mac werden neue Werte die (z.B. mit der App PLIST) gespeichert werden ignoriert. Es werden stets alte Werte für Parameter verwendet. Irgendwann kam ich auf die Idee nach einem möglichen Cache zu suchen und tatsächlich: da ist cfprefsd. Nach einem killall für meinen user wurden auch unter OS X die aktuellen Werte geladen und verwendet.

So ein Cache ist ja gut und schön, wenn er denn erkennt das er dirty ist und sich updated. Weiß jemand mehr was da der Hintergrund ist? Ein Bug wird das kaum sein !?
Warum liefert cfprefsd weiterhin veraltete Daten aus? Jemand ne Idee?
 
Weil der Cache nur upgedatet wird, wenn du die Änderungen über defaults machst statt die Datei selber zu ändern.
Workaround wäre die Datei nach der Änderung über defaults zu lesen.
Ich weiß jetzt nicht wie man das über Java triggern kann.
 
  • Gefällt mir
Reaktionen: wegus
Danke das erklärt es, wenn es auch ein wenig absurd bleibt. Aber wenn das Verhalten so gewünscht ist, ok.
ch weiß jetzt nicht wie man das über Java triggern kann.
naja man könnte natürlich jeweils ein passendes cmd command generieren, aber das führt das schöne Preferences Objekt ad absurdum.
Dann kille ich halt den dämon dafür, ist ja nur für die Entwicklung.
 
@wegus Du änderst die Werte "von außen" und nicht aus dem Programm heraus?
Und wie bekommst du die manuelle defaults-Änderung zum Anwender?
Du musst doch eh eine Updateroutine schreiben, die das korrekt über die Preferences-API austauscht ...
 
@wegus Du änderst die Werte "von außen" und nicht aus dem Programm heraus?
Und wie bekommst du die manuelle defaults-Änderung zum Anwender?
Du musst doch eh eine Updateroutine schreiben, die das korrekt über die Preferences-API austauscht ...
Nee ich ändere die schon über Preferences.

Mit dem plist editor habe ich nur ein paar Test Szenarien machen wollen.
 
  • Gefällt mir
Reaktionen: ruerueka
Und der Cache reagiert richtig? Vor ca 10 Jahren gabs da mal nen Bug….
 
Ja, bei dem plist editor nicht. Bei der Preferences API schon.
 
  • Gefällt mir
Reaktionen: dg2rbf und ruerueka
Zurück
Oben Unten