content: package com.alibaba.json.bvt.bug;
  
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.TypeReference;
  import com.alibaba.json.bvt.parser.array.BeanToArrayTest3_private;
  import junit.framework.TestCase;
  import org.junit.Assert;
  
  /**
   * Created by wuwen on 2017/2/24.
   */
  public class Issue1036 extends TestCase {
  
      /**
       * @see BeanToArrayTest3_private#test_array()
       * @see com.alibaba.fastjson.parser.deserializer.DefaultFieldDeserializer#parseField
       * */
      public void test_for_issue() throws Exception {
          NullPointerException exception = new NullPointerException("test");
          Result<String> result = new Result<String>();
          result.setException(exception);
  
          String json = JSON.toJSONString(result);
  
          Result<String> a = JSON.parseObject(json, new TypeReference<Result<String>>() {
          });
  
          Assert.assertEquals("test", a.getException().getMessage());
      }
  
      public static class Result<T> {
          private T data;
  
          private Throwable exception;
  
          public Result() {
          }
  
          public T getData() {
              return data;
          }
  
          public void setData(T data) {
              this.data = data;
          }
  
          public Throwable getException() {
              return exception;
          }
  
          public void setException(Throwable exception) {
              this.exception = exception;
          }
  
          @Override
          public String toString() {
              return "Result{" +
                      "data='" + data + '\'' +
                      ", exception=" + exception +
                      '}';
          }
      }
  }
  