- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [x] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 2.7.2
* Operating System version: OSX
* Java version: 1.8

### Steps to reproduce this issue

```java
@Test
public void testSerializeSqlDate() throws IOException, ClassNotFoundException {
    java.sql.Date originTime = new java.sql.Date(System.currentTimeMillis());
    this.protostuffObjectOutput.writeObject(originTime);
    this.flushToInput();

    java.sql.Date serializedTime = protostuffObjectInput.readObject(java.sql.Date.class);
    assertThat(serializedTime, is(originTime));
}
```
### Expected Result

What do you expected from the above steps？

### Actual Result

```shell
Expected: is <2019-06-25>
   but: was <1970-01-01>
Expected :is <2019-06-25>
  Actual   :<1970-01-01>
```

If there is an exception, please attach the exception trace:

```
```

WRAPPER_SET.add(BitSet.class);
        WRAPPER_SET.add(StringBuffer.class);
        WRAPPER_SET.add(StringBuilder.class);
        WRAPPER_SET.add(BigDecimal.class);
        WRAPPER_SET.add(Date.class);
        WRAPPER_SET.add(Calendar.class);
        WRAPPER_SET.add(Time.class);
        WRAPPER_SET.add(Timestamp.class);
        WRAPPER_SET.add(Wrapper.class);
    }
    /**
     * Determine if the object needs wrap
     *
     * @param clazz object type
     * @return need wrap
     */
    public static boolean needWrapper(Class<?> clazz) {
        return WrapperUtils.WRAPPER_SET.contains(clazz) || clazz.isArray() || clazz.isEnum();
    }
    /**
     * Determine if the object needs wrap
     *
     * @param obj object
     * @return need wrap
     */
    public static boolean needWrapper(Object obj) {
        return needWrapper(obj.getClass());
    }
}