diff --git a/src/main/java/tools/jackson/databind/BeanDescription.java b/src/main/java/tools/jackson/databind/BeanDescription.java index ff172be909..1f71ced914 100644 --- a/src/main/java/tools/jackson/databind/BeanDescription.java +++ b/src/main/java/tools/jackson/databind/BeanDescription.java @@ -360,10 +360,11 @@ public AnnotatedClass getClassInfo() { @Override public BeanDescription get() { if (_beanDesc == null) { +//if (true) throw new Error("Gotcha!"); // To test without caching, uncomment: - //return _construct(_type, getClassInfo()); + return _construct(_type, getClassInfo()); - _beanDesc = _construct(_type, getClassInfo()); + //_beanDesc = _construct(_type, getClassInfo()); } return _beanDesc; } diff --git a/src/main/java/tools/jackson/databind/DatabindContext.java b/src/main/java/tools/jackson/databind/DatabindContext.java index 576fc148a5..663d21625b 100644 --- a/src/main/java/tools/jackson/databind/DatabindContext.java +++ b/src/main/java/tools/jackson/databind/DatabindContext.java @@ -322,13 +322,13 @@ public BeanDescription.Supplier lazyIntrospectBeanDescription(JavaType type) { return new BeanDescription.LazySupplier(getConfig(), type) { @Override protected BeanDescription _construct(JavaType forType, AnnotatedClass ac) { -// System.out.println("lazyIntrospectBeanDescription.beanDesc("+forType+")"); + System.out.println("lazyIntrospectBeanDescription.beanDesc("+forType+")"); return introspectBeanDescription(forType); } @Override protected AnnotatedClass _introspect(JavaType forType) { -// System.out.println("lazyIntrospectBeanDescription.annotatedClass("+forType+")"); + System.out.println("lazyIntrospectBeanDescription.annotatedClass("+forType+")"); return introspectClassAnnotations(forType); } }; diff --git a/src/main/java/tools/jackson/databind/introspect/POJOPropertiesCollector.java b/src/main/java/tools/jackson/databind/introspect/POJOPropertiesCollector.java index 1bbe5e5e11..57db54a4e3 100644 --- a/src/main/java/tools/jackson/databind/introspect/POJOPropertiesCollector.java +++ b/src/main/java/tools/jackson/databind/introspect/POJOPropertiesCollector.java @@ -379,7 +379,7 @@ public JsonFormat.Value getFormatOverrides() { */ protected void collectAll() { -//System.out.println(" PojoPropsCollector.collectAll() for "+_classDef.getRawType().getName()); +System.out.println(" PojoPropsCollector.collectAll() for "+_classDef.getRawType().getName()); _potentialCreators = new PotentialCreators(); // First: gather basic accessors diff --git a/src/test/java/tools/jackson/databind/misc/Reflection4907Jackson3Test.java b/src/test/java/tools/jackson/databind/misc/Reflection4907Jackson3Test.java new file mode 100644 index 0000000000..4acd1ad5f4 --- /dev/null +++ b/src/test/java/tools/jackson/databind/misc/Reflection4907Jackson3Test.java @@ -0,0 +1,103 @@ +package tools.jackson.databind.misc; + +import org.junit.jupiter.api.Test; + +import tools.jackson.databind.*; +import tools.jackson.databind.testutil.DatabindTestUtil; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.util.Arrays; +import java.util.List; + +public class Reflection4907Jackson3Test extends DatabindTestUtil +{ + static class SqlDatePojo { + public String name; + public java.sql.Date date; + public List tags; + + public SqlDatePojo() { + } + + public SqlDatePojo(String name, java.sql.Date date, String... tags) { + this.name = name; + this.date = date; + this.tags = Arrays.asList(tags); + } + + public SqlDatePojo(java.sql.Date date) { + this.date = date; + } + + public java.sql.Date getDate() { + return date; + } + + public void setDate(java.sql.Date date) { + this.date = date; + } + + public List getTags() { + return tags; + } + } + + private final ObjectMapper MAPPER = newJsonMapper(); + + @Test + public void test4907ReadPojo() throws Exception { +System.err.println(""); + SqlDatePojo pojo = MAPPER.readValue(a2q("{'date':'2000-01-01', 'name':'foo'}"), + SqlDatePojo.class); +System.err.println(""); + assertNotNull(pojo); + } + + @Test + public void test4907WritePojo() throws Exception { +System.err.println(""); + String json = MAPPER.writeValueAsString(new SqlDatePojo("foobar", + java.sql.Date.valueOf("2000-01-01"), "abc", "def")); + System.err.println(""); + assertNotNull(json); + } + /* + + @Test + public void test4907ReadTags() throws Exception { +System.err.println(""); + List tags = MAPPER.readValue(a2q("['abc', 'def']"), + List.class); +System.err.println(""); + assertNotNull(tags); + } + + @Test + public void test4907WriteTags() throws Exception { +System.err.println(""); + String json = MAPPER.writeValueAsString(Arrays.asList("abc", "def")); + System.err.println(""); + assertNotNull(json); + } + */ + + /* + @Test + public void test4907ReadDate() throws Exception { +System.err.println(""); + java.sql.Date date = MAPPER.readValue(a2q("'2000-01-01'"), + java.sql.Date.class); +System.err.println(""); + assertNotNull(date); + } + + @Test + public void test4907WriteDate() throws Exception { +System.err.println(""); + String json = MAPPER.writeValueAsString(java.sql.Date.valueOf("2000-01-01")); + System.err.println(""); + assertNotNull(json); + } + */ +}