Hi Esteban,
sorry but I need your help again.
I succeeded in re-writing all my code to use voyage and can save all my
model now. Great!
Now I was experimenting with it and I have an Image freeze which should not
occur in production;-).
Situation:
I created one Person with two trips. Trip points back to its person.
After writing it into mongo, I delete one trip from mongo manually (I use
rockmongo, great tool).
So in the database, I have now
1) one Person which points to two trips
2) one trip (the other was deleted)
Now, I do:
Person selectAll first trips
and the image freezes.
Sometimes, I find in the DebugLog:
VOMongoError: Lazy reference not found RKATrip: OID(103475906)
This is correct ;-)
I did also try with enableMissingContent but did not work.
http://forum.world.st/Voyage-GC-collecting-random-objects-td4668438.html
Sure, normally, we do not manipulate the database manually.
But I want to be sure that the image does not freeze if this occurs
How can I solve this?
regards
Sabine
###
with this filein you can reproduce it easily
###
Object subclass: #Person
instanceVariableNames: 'trips lastName'
classVariableNames: ''
poolDictionaries: ''
category: 'RKA24-Demo'!
!Person methodsFor: 'accessing' stamp: 'sabineknoefel 8/15/2013 10:02'!
lastName
^ lastName! !
!Person methodsFor: 'accessing' stamp: 'sabineknoefel 8/15/2013 10:02'!
lastName: anObject
lastName := anObject! !
!Person methodsFor: 'accessing' stamp: 'sabineknoefel 8/15/2013 10:02'!
trips
^ trips! !
!Person methodsFor: 'accessing' stamp: 'sabineknoefel 8/15/2013 10:02'!
trips: anObject
trips := anObject! !
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- !
Person class
instanceVariableNames: ''!
!Person class methodsFor: 'as yet unclassified' stamp: 'sabineknoefel
8/15/2013 10:06'!
isVoyageRoot
^true! !
!Person class methodsFor: 'as yet unclassified' stamp: 'sabineknoefel
8/15/2013 11:48'!
mongoContainer
mongoContainer
^VOMongoContainer new
collectionName: 'testPersons';
enableMissingContent;
kind: Person;
yourself! !
!Person class methodsFor: 'as yet unclassified' stamp: 'sabineknoefel
8/15/2013 10:13'!
mongoTrips
mongoDescription
^ VOMongoToManyDescription new
attributeName: 'trips';
kind: Trip;
yourself! !
Object subclass: #Trip
instanceVariableNames: 'description person'
classVariableNames: ''
poolDictionaries: ''
category: 'RKA24-Demo'!
!Trip methodsFor: 'accessing' stamp: 'sabineknoefel 8/15/2013 10:04'!
description
^ description! !
!Trip methodsFor: 'accessing' stamp: 'sabineknoefel 8/12/2013 10:12'!
description: anObject
description := anObject! !
!Trip methodsFor: 'accessing' stamp: 'sabineknoefel 8/15/2013 10:04'!
person
^ person! !
!Trip methodsFor: 'accessing' stamp: 'sabineknoefel 8/15/2013 10:04'!
person: anObject
person := anObject! !
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- !
Trip class
instanceVariableNames: ''!
!Trip class methodsFor: 'as yet unclassified' stamp: 'sabineknoefel
8/12/2013 09:47'!
isVoyageRoot
^true! !
!Trip class methodsFor: 'as yet unclassified' stamp: 'sabineknoefel
8/15/2013 11:48'!
mongoContainer
mongoContainer
^VOMongoContainer new
collectionName: 'testTrips';
enableMissingContent;
kind: Trip;
yourself! !
!Trip class methodsFor: 'as yet unclassified' stamp: 'sabineknoefel
8/15/2013 10:12'!
mongoPerson
VOMongoRepository allInstancesDo: #reset.
mongoDescription
^ VOMongoToOneDescription new
attributeName: 'person';
kind: Person;
yourself ! !
!Trip class methodsFor: 'as yet unclassified' stamp: 'sabineknoefel
8/15/2013 11:50'!
testOnePersonTwoTrips
| theTrip the2ndTrip thePerson |
thePerson := Person new lastName: 'Knoefel'.
theTrip := Trip new description: 'Trip to Munic'.
the2ndTrip := Trip new description: 'Trip to Essen'.
theTrip person: thePerson.
the2ndTrip person: thePerson.
thePerson trips: (OrderedCollection with: theTrip with: the2ndTrip ).
theTrip save.
VOMongoRepository allInstancesDo: #reset.
now I delete one trip from mongo
Person selectAll first trips! !
--
View this message in context:
http://forum.world.st/Voyage-image-freeze-VOMongoError-Lazy-reference-not-found-tp4703739.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.