@Override
 protected void writeObject(ObjectOutput out, Object obj) throws IOException {
   DefaultDataTypes dataType = getDataTypeManager().getDataType(obj.getClass());
   int code = dataType.ordinal();
   out.writeByte((byte) code);
   if (code == DataTypeManagerService.DefaultDataTypes.BOOLEAN.ordinal()) {
     if (Boolean.TRUE.equals(obj)) {
       out.write((byte) 1);
     } else {
       out.write((byte) 0);
     }
   } else if (code <= highestKnownCode
       && code != DataTypeManagerService.DefaultDataTypes.OBJECT.ordinal()) {
     dataType = DataTypeManagerService.DefaultDataTypes.valueOf(getTeiidVersion(), code);
     ColumnSerializer s = getSerializer(dataType.getId(), (byte) 1);
     s.writeObject(out, obj);
   } else {
     super.writeObject(out, obj);
   }
 }