Sergey Krutsko created THRIFT-4408:
--------------------------------------

             Summary: Some unicode characters can't be parsed with Thrift Java
                 Key: THRIFT-4408
                 URL: https://issues.apache.org/jira/browse/THRIFT-4408
             Project: Thrift
          Issue Type: Bug
          Components: Java - Compiler
    Affects Versions: 0.10.0
            Reporter: Sergey Krutsko
            Priority: Minor


If string field of thrift object contains character 
< 
encoded as "\uff1c then parser can't parse such object at all and fails with: 

{code}
java.lang.IllegalArgumentException: -228

        at java.lang.String.<init>(String.java:266)
        at 
org.apache.thrift.protocol.TJSONProtocol.readJSONString(TJSONProtocol.java:691)
{code}

Here the unit test to reproduce it:
{code}
@Test
    public void readUnicode_uff1c() throws Exception {
        String jsonEncodedEntity = "{\"1\":{\"str\":\"\\uff1c\"}}";
        byte[] bytesEntity = jsonEncodedEntity.getBytes();

        TMemoryBuffer memoryBuffer = new TMemoryBuffer(bytesEntity.length);
        memoryBuffer.write(bytesEntity);
        memoryBuffer.close();

        TJSONProtocol protocol = new TJSONProtocol(memoryBuffer);
        protocol.readStructBegin();
        protocol.readFieldBegin();
        assertEquals("<", protocol.readString());
    }
{code}




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to