Skip to content

Commit f0e33cf

Browse files
committed
fixed (de)serialize null user data
1 parent 2d543ea commit f0e33cf

File tree

4 files changed

+10
-21
lines changed

4 files changed

+10
-21
lines changed

src/main/java/com/arangodb/ArangoSerdeAccessor.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
package com.arangodb;
2222

23-
import com.arangodb.serde.ArangoSerde;
2423
import com.arangodb.serde.InternalSerde;
2524

2625
/**
@@ -35,11 +34,4 @@ public interface ArangoSerdeAccessor {
3534
*/
3635
InternalSerde getSerde();
3736

38-
/**
39-
* Returns serialization implementation for serializing and deserializing user's classes.
40-
*
41-
* @return ArangoSerde
42-
*/
43-
ArangoSerde getUserSerde();
44-
4537
}

src/main/java/com/arangodb/internal/ArangoExecuteable.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.arangodb.ArangoSerdeAccessor;
2424
import com.arangodb.DbName;
2525
import com.arangodb.internal.util.EncodeUtils;
26-
import com.arangodb.serde.ArangoSerde;
2726
import com.arangodb.serde.InternalSerde;
2827
import com.arangodb.velocystream.Request;
2928
import com.arangodb.velocystream.RequestType;
@@ -57,11 +56,6 @@ public InternalSerde getSerde() {
5756
return serde;
5857
}
5958

60-
@Override
61-
public ArangoSerde getUserSerde() {
62-
return serde.getUserSerde();
63-
}
64-
6559
protected Request request(final DbName dbName, final RequestType requestType, final String... path) {
6660
final Request request = new Request(dbName, requestType, createPath(path));
6761
for (final Entry<String, String> header : context.getHeaderParam().entrySet()) {

src/main/java/com/arangodb/serde/InternalSerdeImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,12 @@ public JsonNode parse(byte[] content, String jsonPointer) {
7272

7373
@Override
7474
public byte[] serializeUserData(Object value) {
75+
if (value == null) {
76+
return serialize(null);
77+
}
7578
Class<?> clazz = value.getClass();
76-
if ( RawJson.class.equals(clazz) ||
77-
RawBytes.class.equals(clazz) ||
79+
if (RawJson.class.isAssignableFrom(clazz) ||
80+
RawBytes.class.isAssignableFrom(clazz) ||
7881
JsonNode.class.isAssignableFrom(clazz) ||
7982
BaseDocument.class.isAssignableFrom(clazz)
8083
) {
@@ -95,7 +98,7 @@ public byte[] serializeCollectionUserData(Collection<?> value) {
9598

9699
@Override
97100
public <T> T deserializeUserData(byte[] content, Class<T> clazz) {
98-
if ( RawJson.class.isAssignableFrom(clazz) ||
101+
if (RawJson.class.isAssignableFrom(clazz) ||
99102
RawBytes.class.isAssignableFrom(clazz) ||
100103
JsonNode.class.isAssignableFrom(clazz) ||
101104
BaseDocument.class.isAssignableFrom(clazz)

src/test/java/com/arangodb/serde/CustomSerdeTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,9 @@ void customPersonDeserializer() {
131131
void manualCustomPersonDeserializer() {
132132
Person person = new Person();
133133
person.name = "Joe";
134-
ArangoSerde serialization = arangoDB.getUserSerde();
135-
byte[] serialized = serialization.serialize(person);
136-
Person deserializedPerson = serialization.deserialize(serialized, Person.class);
134+
InternalSerde serialization = arangoDB.getSerde();
135+
byte[] serialized = serialization.serializeUserData(person);
136+
Person deserializedPerson = serialization.deserializeUserData(serialized, Person.class);
137137
assertThat(deserializedPerson.name).isEqualTo(PERSON_DESERIALIZER_ADDED_PREFIX + PERSON_SERIALIZER_ADDED_PREFIX + person.name);
138138
}
139139

@@ -229,7 +229,7 @@ void getDocument() {
229229

230230
@Test
231231
void parseNullString() {
232-
final String json = arangoDB.getUserSerde().deserialize(arangoDB.getUserSerde().serialize(null), String.class);
232+
final String json = arangoDB.getSerde().deserializeUserData(arangoDB.getSerde().serializeUserData(null), String.class);
233233
assertThat(json).isNull();
234234
}
235235

0 commit comments

Comments
 (0)