content: package com.alibaba.json.bvt.bug;
  
  import com.alibaba.fastjson.JSONReader;
  import com.alibaba.fastjson.parser.Feature;
  import junit.framework.TestCase;
  import org.junit.Assert;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.nio.charset.Charset;
  
  public class Issue408 extends TestCase {
  
      private InputStream inputStream;
  
      @Override
      public void setUp() throws Exception {
          String resource = "json/Issue408.json";
          inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(resource);
  
          com.alibaba.fastjson.parser.ParserConfig.global.addAccept("com.alibaba.json.bvt.bug.Issue408.");
      }
  
  
      @Override
      public void tearDown() throws Exception {
          inputStream.close();
      }
  
      public void test_for_issue() throws Exception {
  
          JSONReader jsonReader = new JSONReader(new InputStreamReader(inputStream, Charset.forName("UTF-8")));
          jsonReader.config(Feature.AllowArbitraryCommas, true);
          jsonReader.config(Feature.IgnoreNotMatch, true);
          jsonReader.config(Feature.SortFeidFastMatch, false);
          jsonReader.config(Feature.DisableCircularReferenceDetect, true);
          jsonReader.config(Feature.AutoCloseSource, true);
  
          VOList deserialized = null;
          try {
              deserialized = (VOList)jsonReader.readObject();
          }finally {
              jsonReader.close();
          }
  
          for (int i = 0; i < 17; i++) {
              Assert.assertEquals(deserialized.getVolist()[i].getLongid0(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid1(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid2(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid3(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid4(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid5(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid6(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid7(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid8(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid9(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid10(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid11(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid12(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid13(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid14(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid15(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid16(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid17(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid18(), Long.valueOf(1234567890123L));
              Assert.assertEquals(deserialized.getVolist()[i].getLongid19(), Long.valueOf(1234567890123L));
          }
      }
  
      public static class VOList {
          private VO[] volist;
          private Long longid0;
          private Long longid1;
  
          public VO[] getVolist() {
              return volist;
          }
  
          public void setVolist(VO[] volist) {
              this.volist = volist;
          }
  
          public Long getLongid1() {
              return longid1;
          }
  
          public void setLongid1(Long longid1) {
              this.longid1 = longid1;
          }
  
          public Long getLongid0() {
              return longid0;
          }
  
          public void setLongid0(Long longid0) {
              this.longid0 = longid0;
          }
      }
  
      public static class VO {
          private Long longid0;
          private Long longid1;
          private Long longid2;
          private Long longid3;
          private Long longid4;
          private Long longid5;
          private Long longid6;
          private Long longid7;
          private Long longid8;
          private Long longid9;
          private Long longid10;
          private Long longid11;
          private Long longid12;
          private Long longid13;
          private Long longid14;
          private Long longid15;
          private Long longid16;
          private Long longid17;
          private Long longid18;
          private Long longid19;
  
          public Long getLongid0() {
              return longid0;
          }
  
          public void setLongid0(Long longid0) {
              this.longid0 = longid0;
          }
  
          public Long getLongid1() {
              return longid1;
          }
  
          public void setLongid1(Long longid1) {
              this.longid1 = longid1;
          }
  
          public Long getLongid2() {
              return longid2;
          }
  
          public void setLongid2(Long longid2) {
              this.longid2 = longid2;
          }
  
          public Long getLongid3() {
              return longid3;
          }
  
          public void setLongid3(Long longid3) {
              this.longid3 = longid3;
          }
  
          public Long getLongid4() {
              return longid4;
          }
  
          public void setLongid4(Long longid4) {
              this.longid4 = longid4;
          }
  
          public Long getLongid5() {
              return longid5;
          }
  
          public void setLongid5(Long longid5) {
              this.longid5 = longid5;
          }
  
          public Long getLongid6() {
              return longid6;
          }
  
          public void setLongid6(Long longid6) {
              this.longid6 = longid6;
          }
  
          public Long getLongid7() {
              return longid7;
          }
  
          public void setLongid7(Long longid7) {
              this.longid7 = longid7;
          }
  
          public Long getLongid8() {
              return longid8;
          }
  
          public void setLongid8(Long longid8) {
              this.longid8 = longid8;
          }
  
          public Long getLongid9() {
              return longid9;
          }
  
          public void setLongid9(Long longid9) {
              this.longid9 = longid9;
          }
  
          public Long getLongid10() {
              return longid10;
          }
  
          public void setLongid10(Long longid10) {
              this.longid10 = longid10;
          }
  
          public Long getLongid11() {
              return longid11;
          }
  
          public void setLongid11(Long longid11) {
              this.longid11 = longid11;
          }
  
          public Long getLongid12() {
              return longid12;
          }
  
          public void setLongid12(Long longid12) {
              this.longid12 = longid12;
          }
  
          public Long getLongid13() {
              return longid13;
          }
  
          public void setLongid13(Long longid13) {
              this.longid13 = longid13;
          }
  
          public Long getLongid14() {
              return longid14;
          }
  
          public void setLongid14(Long longid14) {
              this.longid14 = longid14;
          }
  
          public Long getLongid15() {
              return longid15;
          }
  
          public void setLongid15(Long longid15) {
              this.longid15 = longid15;
          }
  
          public Long getLongid16() {
              return longid16;
          }
  
          public void setLongid16(Long longid16) {
              this.longid16 = longid16;
          }
  
          public Long getLongid17() {
              return longid17;
          }
  
          public void setLongid17(Long longid17) {
              this.longid17 = longid17;
          }
  
          public Long getLongid18() {
              return longid18;
          }
  
          public void setLongid18(Long longid18) {
              this.longid18 = longid18;
          }
  
          public Long getLongid19() {
              return longid19;
          }
  
          public void setLongid19(Long longid19) {
              this.longid19 = longid19;
          }
      }
  }
  