Yes, I'd move that out of there. Isn't there a willSave() method in Wonder's EOs? That seems like a good place for this.
On 2015-02-27, 12:00 AM, "OC" wrote: Chuck, On 27. 2. 2015, at 5:51, Chuck Hill <[email protected]<mailto:[email protected]>> wrote: void validateForSave { super.validateForSave() fixArchivedButReallyUnchangedItemsFromSnapshot() // <=== this is line 980 === "fix" sounds like "change EO object state". Note carefully that the name of the method is validateForSave, not validateForSaveAndChangeDataBehindEOFsBack. EO state should not change during validation. Hmmm, this might be the culprit. The trick is, this being my old application, I am saving serialized NSDictionaries to BLOBs, and I've found there were *lots* of superfluous updates, which I have tracked to the sad fact that serialization (through ObjectOutput/InputStream) tends to create different NSDatas from same objects. Thus, I've aded essentially this code: === void fixArchivedButReallyUnchangedItemsFromSnapshot { NSDictionary ss=this.editingContext().committedSnapshotForObject(this) NSDictionary d=this.changesFromSnapshot(ss) d.each { String k,v -> if (k.hasSuffix('_archivedNSObject')) { // all my BLOB attributes have this kind of name def vd=Archivation.objectFromArchivedData(v) // Archivation uses ObjectOutput/InputStream to... def ssvd=Archivation.objectFromArchivedData(ss[k]) // ...turn objects to NSData and back if (vd==ssvd) this.takeValueForKey(ss[k],k) } } } } === and it did fix those superfluous updates all right... but perhaps it brought another problems? I'll try to move this out from validateForSave, just before saveChanges... Thanks, OC
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
