Start work on #596 to get in 2.5.0
diff --git a/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java b/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java
index de9dcc1..270c907 100644
--- a/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java
+++ b/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java
@@ -477,6 +477,16 @@
     public PropertyName findWrapperName(Annotated ann) { return null; }
 
     /**
+     * Method for finding suggested default value (as simple textual serialization)
+     * for the property. While core databind does not make any use of it, it is exposed
+     * for extension modules to use: an expected use is generation of schema representations
+     * and documentation.
+     *
+     * @since 2.5
+     */
+    public String findPropertyDefaultValue(Annotated ann) { return null; }
+
+    /**
      * Method used to check whether specified property member (accessor
      * or mutator) defines human-readable description to use for documentation.
      * There are no further definitions for contents; for example, whether
@@ -515,7 +525,7 @@
      * @since 2.4
      */
     public String findImplicitPropertyName(AnnotatedMember member) { return null; }
-    
+
     /*
     /**********************************************************
     /* Serialization: general annotations
diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java
index f5de647..13e8603 100644
--- a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java
+++ b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java
@@ -421,7 +421,13 @@
         }
         return name;
     }
-    
+
+    @Override
+    public String findPropertyDefaultValue(Annotated ann) {
+        String str = _primary.findPropertyDefaultValue(ann);
+        return (str == null || str.isEmpty()) ? _secondary.findPropertyDefaultValue(ann) : str;
+    }
+
     @Override
     public String findPropertyDescription(Annotated ann) {
         String r = _primary.findPropertyDescription(ann);
@@ -433,7 +439,7 @@
         Integer r = _primary.findPropertyIndex(ann);
         return (r == null) ? _secondary.findPropertyIndex(ann) : r;
     }
-    
+
     @Override
     public String findImplicitPropertyName(AnnotatedMember param) {
         String r = _primary.findImplicitPropertyName(param);
diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java
index f1cb3be..28dd950 100644
--- a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java
+++ b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java
@@ -460,6 +460,12 @@
     }
 
     @Override
+    public String findPropertyDefaultValue(Annotated ann) {
+        JsonProperty prop = _findAnnotation(ann, JsonProperty.class);
+        return (prop == null) ? null : prop.defaultValue();
+    }
+
+    @Override
     public String findPropertyDescription(Annotated ann) {
         JsonPropertyDescription desc = _findAnnotation(ann, JsonPropertyDescription.class);
         return (desc == null) ? null : desc.value();
diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestFieldDeserialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestFieldDeserialization.java
index 88b6f79..fcfd7d8 100644
--- a/src/test/java/com/fasterxml/jackson/databind/deser/TestFieldDeserialization.java
+++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestFieldDeserialization.java
@@ -69,7 +69,6 @@
         @JsonProperty("x")
         protected int myX = 10;
 
-        @SuppressWarnings("hiding")
         public int y = 11;
     }
     
diff --git a/src/test/java/com/fasterxml/jackson/databind/interop/TestJDKProxy.java b/src/test/java/com/fasterxml/jackson/databind/interop/TestJDKProxy.java
index fad88be..bf466d3 100644
--- a/src/test/java/com/fasterxml/jackson/databind/interop/TestJDKProxy.java
+++ b/src/test/java/com/fasterxml/jackson/databind/interop/TestJDKProxy.java
@@ -54,15 +54,14 @@
 
     public static <T> T getProxy(Class<T> type, Object obj) {
         class ProxyUtil implements InvocationHandler {
-            @SuppressWarnings("hiding")
-            Object obj;
+            Object _obj;
             public ProxyUtil(Object o) {
-                obj = o;
+                _obj = o;
             }
             @Override
             public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
                 Object result = null;
-                result = m.invoke(obj, args);
+                result = m.invoke(_obj, args);
                 return result;
             }
         }
diff --git a/src/test/java/com/fasterxml/jackson/databind/introspect/TestPOJOPropertiesCollector.java b/src/test/java/com/fasterxml/jackson/databind/introspect/TestPOJOPropertiesCollector.java
index 6ea7997..9f1cd16 100644
--- a/src/test/java/com/fasterxml/jackson/databind/introspect/TestPOJOPropertiesCollector.java
+++ b/src/test/java/com/fasterxml/jackson/databind/introspect/TestPOJOPropertiesCollector.java
@@ -392,7 +392,6 @@
         assertNotNull(beanDesc);
     }
 
-    @SuppressWarnings("hiding")
     public void testJackson703() throws Exception
     {
     	// note: need a separate mapper, need to reconfigure