-
Notifications
You must be signed in to change notification settings - Fork 26.5k
Please consider supporting Java 8 Date/Time type when serializing with Kryo #2178
Copy link
Copy link
Closed
Closed
Copy link
Labels
help wantedEverything needs help from contributorsEverything needs help from contributors
Milestone
Description
Environment
- Dubbo version: 2.6.2
- Java version: 1.8
I am using java.time.LocalDateTime and Dubbo complains "class java.time.LocalDateTime has no zero-arg constructor and this will affect the serialization performance", which is caused by Dubbo's wrapper class "CompatibleKryo"
Any thoughts ??
package com.alibaba.dubbo.common.serialize.kryo;
import com.alibaba.dubbo.common.logger.Logger;
import com.alibaba.dubbo.common.logger.LoggerFactory;
import com.alibaba.dubbo.common.serialize.kryo.utils.ReflectionUtils;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.Serializer;
import com.esotericsoftware.kryo.serializers.JavaSerializer;
public class CompatibleKryo extends Kryo {
private static final Logger logger = LoggerFactory.getLogger(CompatibleKryo.class);
@Override
public Serializer getDefaultSerializer(Class type) {
if (type == null) {
throw new IllegalArgumentException("type cannot be null.");
}
if (!type.isArray() && !type.isEnum() && !ReflectionUtils.checkZeroArgConstructor(type)) {
if (logger.isWarnEnabled()) {
logger.warn(type + " has no zero-arg constructor and this will affect the serialization performance");
}
return new JavaSerializer();
}
return super.getDefaultSerializer(type);
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
help wantedEverything needs help from contributorsEverything needs help from contributors
Type
Fields
Give feedbackNo fields configured for issues without a type.