hazelcast / hazelcast/hazelcast-python-client
Update Serializers (ArrayListSerializer, LinkedListSerializer and others) [API-1114]
- Vorherrschende Sprache
- Python
- Sterne
- 116
- Forks
- 78
- Ø Merge
- 10 T. 22 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
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
```
Beitragsleitfaden
Rechercherichtung
Beginne damit, ArrayListSerializer, LinkedListSerializer und andere Serializer für Collections zu lokalisieren, und vergleiche anschließend ihre NULL_ARRAY_LENGTH-Behandlung mit den Änderungen in PR #15371. Ermittle, welche Serializer veraltet sind, und aktualisiere sie konsistent. Als erledigt gilt die Aufgabe, wenn ihr Serialisierungsverhalten den neueren Protokollerwartungen entspricht und die unnötige None-Behandlung, wo zutreffend, entfernt wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- distributed-systems
- Issue-Typ
- Refactoring
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100