Skip to content

Commit 0235b1c

Browse files
committed
Yet more rework on #2925: drop (for now) support for deserializing java.sql.Blob to avoid add'l dependency
Assumption is that serialization more likely needed; also since implementation of deser bit bare-bones, has issues; may be added if a user requests support.
1 parent 1d749ed commit 0235b1c

File tree

5 files changed

+12
-120
lines changed

5 files changed

+12
-120
lines changed

src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ public class OptionalHandlerFactory implements java.io.Serializable
7979

8080
public final static OptionalHandlerFactory instance = new OptionalHandlerFactory();
8181

82-
// classes from java.sql module, this module may not be present at runtime
82+
// classes from java.sql module, this module may or may not be present at runtime
83+
// (is included on Java 8, but not part of JDK core for Java 9 and beyond)
8384
private final Map<String, String> _sqlDeserializers;
8485
private final Map<String, Object> _sqlSerializers;
8586

@@ -88,16 +89,15 @@ public class OptionalHandlerFactory implements java.io.Serializable
8889
private final static String CLS_NAME_JAVA_SQL_TIME = "java.sql.Time";
8990
private final static String CLS_NAME_JAVA_SQL_BLOB = "java.sql.Blob";
9091
private final static String CLS_NAME_JAVA_SQL_SERIALBLOB = "javax.sql.rowset.serial.SerialBlob";
91-
9292

9393
protected OptionalHandlerFactory() {
9494
_sqlDeserializers = new HashMap<>();
9595
_sqlDeserializers.put(CLS_NAME_JAVA_SQL_DATE,
9696
"com.fasterxml.jackson.databind.deser.std.DateDeserializers$SqlDateDeserializer");
9797
_sqlDeserializers.put(CLS_NAME_JAVA_SQL_TIMESTAMP,
9898
"com.fasterxml.jackson.databind.deser.std.DateDeserializers$TimestampDeserializer");
99-
_sqlDeserializers.put(CLS_NAME_JAVA_SQL_BLOB,
100-
"com.fasterxml.jackson.databind.ext.SqlBlobDeserializer");
99+
// 09-Nov-2020, tatu: No deserializer for `java.sql.Blob` yet; would require additional
100+
// dependency and not yet requested by anyone. Add if requested
101101

102102
_sqlSerializers = new HashMap<>();
103103
// 09-Jan-2015, tatu: As per [databind#1073], let's try to guard against possibility
@@ -107,6 +107,11 @@ protected OptionalHandlerFactory() {
107107
_sqlSerializers.put(CLS_NAME_JAVA_SQL_TIMESTAMP, DateSerializer.instance);
108108
_sqlSerializers.put(CLS_NAME_JAVA_SQL_DATE, "com.fasterxml.jackson.databind.ser.std.SqlDateSerializer");
109109
_sqlSerializers.put(CLS_NAME_JAVA_SQL_TIME, "com.fasterxml.jackson.databind.ser.std.SqlTimeSerializer");
110+
111+
// 09-Nov-2020, tatu: Not really optimal way to deal with these, problem being that
112+
// Blob is interface and actual instance we get is usually different. So may
113+
// need to improve if we reported bugs. But for now, do this
114+
110115
_sqlSerializers.put(CLS_NAME_JAVA_SQL_BLOB, "com.fasterxml.jackson.databind.ext.SqlBlobSerializer");
111116
_sqlSerializers.put(CLS_NAME_JAVA_SQL_SERIALBLOB, "com.fasterxml.jackson.databind.ext.SqlBlobSerializer");
112117
}

src/main/java/com/fasterxml/jackson/databind/ext/SqlBlobDeserializer.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/test/java/com/fasterxml/jackson/databind/ext/SqlBlobDeserializationTest.java

Lines changed: 0 additions & 66 deletions
This file was deleted.

src/test/java/com/fasterxml/jackson/databind/introspect/MethodGenericTypeResolverTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public static class StubA {
4949
private final String value;
5050

5151
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
52-
private StubA(String value) {
52+
StubA(String value) {
5353
this.value = value;
5454
}
5555

src/test/java/com/fasterxml/jackson/databind/ser/GenericTypeSerializationTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -399,8 +399,7 @@ interface Indexed<T> {
399399
}
400400

401401
public static class TestIndexed implements Indexed<String> {
402-
403-
private final UUID value;
402+
final UUID value;
404403

405404
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
406405
TestIndexed(UUID value) {
@@ -415,7 +414,7 @@ public String index() {
415414

416415
public static final class IndexedList<T extends Indexed<K>, K> extends AbstractList<T> {
417416

418-
private final ArrayList<T> delegate;
417+
final ArrayList<T> delegate;
419418

420419
private IndexedList(ArrayList<T> delegate) {
421420
this.delegate = delegate;

0 commit comments

Comments
 (0)