in hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/MapSerializer.java [76:114]
public void writeObject(Object obj, AbstractHessianOutput out)
throws IOException {
if (out.addRef(obj))
return;
Map map = (Map) obj;
Class<?> cl = obj.getClass();
if (cl.equals(HashMap.class)
|| !(obj instanceof java.io.Serializable))
out.writeMapBegin(null);
else if (!_isSendJavaType) {
// hessian/3a19
for (; cl != null; cl = cl.getSuperclass()) {
if (cl.equals(HashMap.class)) {
out.writeMapBegin(null);
break;
} else if (cl.getName().startsWith("java.")) {
out.writeMapBegin(cl.getName());
break;
}
}
if (cl == null)
out.writeMapBegin(null);
} else {
out.writeMapBegin(cl.getName());
}
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
out.writeObject(entry.getKey());
out.writeObject(entry.getValue());
}
out.writeMapEnd();
}