Hello... where is the usual crowd of this list? I am attaching the "primitive failed" bug that I get, just in case it rings a bell to anyone. bye bye
r.
Ramiro Diaz Trepat wrote:
Thank you very much guys. Marco, I know GOODS is an excellent oodb, it's been used in my company with great success (in a C++ comertial project). Since I am coding squeak mostly for fun, I wanted to try the *pure* squeak way, and hence I wanted to give Magma a fair chance. Besides, I have an "irrational" belief in it (by now at least), and respect for the impressive undertaking that Chris Müller faced. So before I give up on it, I want to test it more thoroughly and hear more oppinons of people using it, there must be more out there...
So... another important question: Does Magma support bidirectional relations? I have a very simple situation where it all hangs. Is a very simple line, that commits a class which holds a collection of elements that also have a reference to the main class. Its so simple that I can't find any other explanation. Thanks again.
r.
Error: a primitive has failed 2 July 2004 12:41:19 am
VM: Win32 - a SmalltalkImage Image: Squeak3.7beta [latest update: #5967]
SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir D:\Squeak\3.6 Trusted Dir D:\Squeak\3.6\Ramiro Diaz Trepat Untrusted Dir C:\My Squeak\Ramiro Diaz Trepat
Array(Object)>>error: Receiver: <<error during printing>> Arguments and temporary variables: aString: 'a primitive has failed' Receiver's instance variables: <<error during printing>> Array(Object)>>primitiveFailed Receiver: <<error during printing>> Arguments and temporary variables:
Receiver's instance variables: <<error during printing>> Array>>elementsForwardIdentityTo:copyHash: Receiver: <<error during printing>> Arguments and temporary variables: otherArray: #(an OrderedCollection(2066649)) copyHash: false Receiver's instance variables: <<error during printing>> MaOdbmsProxy(MaMutatingProxy)>>becomeForward:copyHash: Receiver: <<error during printing>> Arguments and temporary variables: otherObject: an OrderedCollection(2066649) copyHash: false Receiver's instance variables: <<error during printing>>
--- The full stack --- Array(Object)>>error: Array(Object)>>primitiveFailed Array>>elementsForwardIdentityTo:copyHash: MaOdbmsProxy(MaMutatingProxy)>>becomeForward:copyHash: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MaObjectSerializer>>newSkeletonFor:fromProxy: [] in MaObjectSerializer>>materializeGraphDo: {[:foundObj | foundObj maIsBufferedObjectProxy ifTrue: [skeletons add:...]} [] in MagmaOidManager>>objectWithOid:ifFound:ifAbsent: {[:obj | obj ifNil: [aBlock value] ifNotNil: [oneArgBlock value: obj]]} MaWeakValueDictionary(MaDictionary)>>maAt:ifPresent:ifAbsent: [] in MagmaOidManager>>objectWithOid:ifFound:ifAbsent: {[(MaOidCalculator isOidForNewObject: anInteger) ifTrue: [newObjects ma...]} MaOidCalculator class>>objectWithOid:ifNone: MagmaOidManager>>objectWithOid:ifFound:ifAbsent: MaObjectSerializer>>objectWithOid:ifFound:ifAbsent: [] in MaObjectSerializer>>materializeGraphDo: {[:each | object := self objectWithOid: each oid ifFound: [:foundObj...]} [] in MaSerializedGraphBuffer>>buffersDo: {[:eachPosition | buffer := preMadeBuffers at: (self bufferTypeAt: eachP...]} MaSerializedGraphBuffer>>bufferPositionsDo: MaSerializedGraphBuffer>>buffersDo: MaObjectSerializer>>materializeGraphDo: MaObjectSerializer>>materializeGraph:do: MagmaSession>>materializeObject: MagmaSession>>realObjectFor: MaOdbmsProxy>>mutant MaOdbmsProxy(MaMutatingProxy)>>mutateAndSend: MaOdbmsProxy(MaMutatingProxy)>>doesNotUnderstand: #size [] in MagmaClassIdManager>>materializeAllClassDefinitions {[:each | each size]} [] in Dictionary>>do: {[:assoc | aBlock value: assoc value]} Dictionary(Set)>>do: Dictionary>>do: MagmaClassIdManager>>materializeAllClassDefinitions MaObjectSerializer>>materializeAllClassDefinitions MagmaSession>>refreshViewUsing: MagmaSession>>refresh MagmaSession>>abort MagmaRepositoryController>>refreshView MaObjectRepository>>submitAll:for:beginAnother: MagmaRepositoryController>>submitAll:for:beginAnother: MaWriteRequest>>process [] in MagmaRepositoryController>>processRequest: {[aMaRepositoryRequest process]} [] in Semaphore>>critical: {[blockValue := mutuallyExcludedBlock value]} BlockContext>>ensure: Semaphore>>critical: MagmaRepositoryController>>requestCritical: [] in MagmaRepositoryController>>processRequest: {[aMaRepositoryRequest sessionId = self sessionId ifTrue: [aMaRepositoryReq...]} BlockContext>>on:do: MagmaRepositoryController>>processRequest: [] in MagmaSession class>>repositoryController: {[:eachRequest | aMaRepositoryController processRequest: eachRequest]} [] in MaLocalRequestServer(MaRequestServer)>>processRequest: {[processBlock value: aMaServerRequest]} BlockContext>>on:do: MaLocalRequestServer(MaRequestServer)>>processRequest: MaLocalServerLink>>submit: MaRepositoryControllerFacade>>submit: MaRepositoryControllerFacade>>submitAll:andBegin: [] in MagmaSession>>commitAndBegin: {[anchor := nil. facade submitAll: commitPackage andBegin: aBoolean]} BlockContext>>on:do: MagmaSession>>commitAndBegin: MagmaSession>>commit [] in MagmaSession>>commit: {[result := aBlock value. self commit]} BlockContext>>ensure: MagmaSession>>commit: ...etc...