#806 can't read MapType from ObjectDeserializer

ivan Tue 3 Nov 2009

There's a problem with writing/reading MapType objects. Here's an example:

fansh> Sys.out.writeObj([Str:Obj?]#).flush
[sys::Str:sys::Obj?]#

fansh> "[sys::Str:sys::Obj?]#".in.readObj 
sys::IOErr: Expecting '[', not '#' [Line 1]
  fanx.serial.ObjDecoder.err (ObjDecoder.java:610)
  fanx.serial.ObjDecoder.err (ObjDecoder.java:618)
  fanx.serial.ObjDecoder.verify (ObjDecoder.java:664)
  fanx.serial.ObjDecoder.consume (ObjDecoder.java:653)
  fanx.serial.ObjDecoder.readCollection (ObjDecoder.java:341)
  fanx.serial.ObjDecoder.readObj (ObjDecoder.java:147)
  fanx.serial.ObjDecoder.readObj (ObjDecoder.java:75)
  fan.sys.InStream.readObj (InStream.java:507)
  fan.sys.InStream.readObj (InStream.java:504)

However the following works fine:

fansh> "sys::Str:sys::Obj?#".in.readObj
[sys::Str:sys::Obj?]

So it seems that either map types should be written without square brackets or ObjDecoder should not assume that [ is always list/map collection

brian Tue 3 Nov 2009

Promoted to ticket #806 and assigned to brian

that sounds like a bug

brian Wed 4 Nov 2009

Ticket resolved in 1.0.47

changeset

Login or Signup to reply.