Characters are now primitive. There shouldn’t be any need to change Character serialization though.
I tried to reproduce your case and I can’t. The only way I can get the primitive to fail is by supplying a negative value. I suspect that the problem happens beforehand, so that the byte being read is now at the wrong offset. Can you give me a runnable example? Cheers, Max > On 15 Dec 2015, at 13:18, Norbert Hartl <norb...@hartl.name> wrote: > > We have a test build for pharo5 that checks if we need to do stuff for future > migrations. Since yesterday it fails, of course. > I have a fueled out object graph stored as byte array in a method. The fuel > bytes are serialized using a non-spur image. Now when the spur image reads > the bytes I get an exception. Has this something to do with immediate > characters? Is there a way to fix that or will it just not be possible to > exchange objects between spur and non-spur using fuel? > > thanks, > > Norbert > > > primitive #value: in Character class failed > Stacktrace > > Character class(Object)>>primitiveFailed: > Character class(Object)>>primitiveFailed > Character class>>value: > Character class>>materializeFrom: > FLHookPrimitiveCluster>>materializeInstanceWith: > FLHookPrimitiveCluster(FLIteratingCluster)>>materializeInstancesStepWith: > FLMaterialization>>clusterInstancesStep > [ self clusterInstancesStep ] in FLMaterialization>>instancesStep > SmallInteger(Integer)>>timesRepeat: > FLMaterialization>>instancesStep > FLMaterialization>>run > [ :aDecoder | > (FLMaterialization with: aDecoder) > run; > yourself ] in FLMaterializer>>setDefaultMaterialization > FLMaterializer>>materializeFrom: > FLMaterializer class>>materializeFromByteArray: > MAPExampleModels class>>readModelFromSelector: > MAPExampleModels class>>readModelNamed: > [ self readModelNamed: aString ] in MAPExampleModels class>>named: > [ self at: key put: aBlock value ] in Dictionary>>at:ifAbsentPut: > Dictionary>>at:ifAbsent: > Dictionary>>at:ifAbsentPut: > MAPExampleModels class>>named: > MAPTest>>model > MAPTest>>tcapModule > MAPTest>>testInsertSubscriberDataBitStringAccess > [ testMethod perform: testMethod selector ] in Given>>produceReturnValueAt: > [ self at: key put: aBlock value ] in Dictionary>>at:ifAbsentPut: > Dictionary>>at:ifAbsent: > Dictionary>>at:ifAbsentPut: > Given>>produceReturnValueAt: > MAPTest(Phexample)>>performTest > >