hazelcast / hazelcast/hazelcast-python-client

Update Serializers (ArrayListSerializer, LinkedListSerializer and others) [API-1114]

Abierto
#522 1 comentario 0 reacciones 0 asignados Ver en GitHub
Estimation: M Source: Internal to-jira Type: Defect
Lenguaje dominante
Python
Estrellas
116
Forks
78
Merge medio
10 d 22 h
PR fusionados (30 d)
1

Descripción

Right now some serializers like ArrayListSerializer and LinkedListSerializer(maybe even more) are out of date. We were using NULL_ARRAY_LENGTH in serialization of these before 2019. It is changed in this pr: https://github.com/hazelcast/hazelcast/pull/15371/files

The ArrayListSerializer for example, never encounters with "None" input, since null has its own serializer. So there is an unnecessary check in the serializer.

```py
class ArrayListSerializer(BaseSerializer):
def read(self, inp):
size = inp.read_int()
if size > NULL_ARRAY_LENGTH:
return [inp.read_object() for _ in range(0, size)]
return None

def write(self, out, obj):
size = NULL_ARRAY_LENGTH if obj is None else len(obj)
out.write_int(size)
for i in range(0, size):
out.write_object(obj[i])

def get_type_id(self):
return JAVA_DEFAULT_TYPE_ARRAY_LIST
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza por localizar ArrayListSerializer, LinkedListSerializer y otros serializadores de colecciones; después, compara su gestión de NULL_ARRAY_LENGTH con los cambios de PR #15371. Determina qué serializadores están desactualizados y actualízalos de forma coherente; se considerará terminado cuando su comportamiento de serialización coincida con las expectativas más recientes del protocolo y se haya eliminado la gestión innecesaria de None cuando corresponda.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
distributed-systems
Tipo de issue
Refactorización
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.