hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Devaraj Das (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-9435) Fix jersey serialization/deserialization of json objects
Date Wed, 25 Sep 2013 22:24:04 GMT

    [ https://issues.apache.org/jira/browse/HBASE-9435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13778171#comment-13778171
] 

Devaraj Das commented on HBASE-9435:
------------------------------------

This broke one of our internal tests. The failing command:
{noformat}
 curl -H "Content-Type: application/json" --data '{"Row":{"@key":"cm93MQ==", "Cell":
{"@column":"Y29sZmFtOmNvbA==", "$":"dmFsdWUx"}
}}' http://localhost:17000/tcreatetbl/row1/colfam:col
{noformat}

The exception thrown:
{noformat}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 Can not deserialize instance of java.util.List out of START_OBJECT
token
 at [Source: org.mortbay.jetty.HttpParser$Input@6392f558; line: 1, column: 2] (through reference
chain: org.apache.hadoop.hbase.rest.model.CellSetModel["Row"])</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /tcreatetbl/row1/colfam:col. Reason:
<pre>    Can not deserialize instance of java.util.List out of START_OBJECT token
 at [Source: org.mortbay.jetty.HttpParser$Input@6392f558; line: 1, column: 2] (through reference
chain: org.apache.hadoop.hbase.rest.model.CellSetModel["Row"])</pre></p><h3>Caused
by:</h3><pre>org.codehaus.jackson.map.JsonMappingException: Can not deserialize
instance of java.util.List out of START_OBJECT token
 at [Source: org.mortbay.jetty.HttpParser$Input@6392f558; line: 1, column: 2] (through reference
chain: org.apache.hadoop.hbase.rest.model.CellSetModel["Row"])
        at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
        at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:198)
        at org.codehaus.jackson.map.deser.CollectionDeserializer.handleNonArray(CollectionDeserializer.java:149)
        at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:107)
        at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:97)
{noformat}
                
> Fix jersey serialization/deserialization of json objects
> --------------------------------------------------------
>
>                 Key: HBASE-9435
>                 URL: https://issues.apache.org/jira/browse/HBASE-9435
>             Project: HBase
>          Issue Type: Bug
>          Components: REST
>            Reporter: Francis Liu
>            Assignee: Francis Liu
>             Fix For: 0.98.0, 0.96.1
>
>         Attachments: HBASE-9435.patch, HBASE-9435.patch
>
>
> Stargate uses the default json marshaller/unmarshaller in natural mode. In this mode
the unmarshaller has trouble unmarshalling json instances. 
> This patch fixes this issue by using jackson as the marshaller/unmarshaller instead.

> I've also updated all the model unit tests to test json serialization/deserialization.
Backwards compatibilty can be verified by modify the test base class to use the original marshaller/unmarshaller
and see that model tests pass.
> The patch is backward compatible except for StorageClusterStatusModel, which is broken
anyway. It only shows one node in the liveNodes field.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message