You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by st...@apache.org on 2007/12/30 22:40:52 UTC

svn commit: r607592 - in /lucene/hadoop/trunk/src/contrib/hbase: CHANGES.txt src/java/org/apache/hadoop/hbase/rest/TableHandler.java

Author: stack
Date: Sun Dec 30 13:40:50 2007
New Revision: 607592

URL: http://svn.apache.org/viewvc?rev=607592&view=rev
Log:
HADOOP-2503 REST Insert / Select encoding issues

Modified:
    lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt
    lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/TableHandler.java

Modified: lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt?rev=607592&r1=607591&r2=607592&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt Sun Dec 30 13:40:50 2007
@@ -93,6 +93,8 @@
                deleted
    HADOOP-2468 TestRegionServerExit failed in Hadoop-Nightly #338
    HADOOP-2467 scanner truncates resultset when > 1 column families
+   HADOOP-2503 REST Insert / Select encoding issue
+               (Bryan Duxbury via Stack)
    
   IMPROVEMENTS
    HADOOP-2401 Add convenience put method that takes writable

Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/TableHandler.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/TableHandler.java?rev=607592&r1=607591&r2=607592&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/TableHandler.java (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/TableHandler.java Sun Dec 30 13:40:50 2007
@@ -245,10 +245,13 @@
     final HttpServletResponse response, final String [] pathSegments)
   throws IOException, ServletException {
     HTable table = getTable(pathSegments[0]);
+
+    // pull the row key out of the path
+    String row = URLDecoder.decode(pathSegments[2], HConstants.UTF8_ENCODING);
     
     switch(ContentType.getContentType(request.getHeader(CONTENT_TYPE))) {
       case XML:
-        putRowXml(table, request, response, pathSegments);
+        putRowXml(table, row, request, response, pathSegments);
         break;
       case MIME:
         doNotAcceptable(response, "Don't support multipart/related yet...");
@@ -265,8 +268,9 @@
    * @param pathSegments
    * Decode supplied XML and do a put to Hbase.
    */
-  private void putRowXml(HTable table, final HttpServletRequest request,
-    final HttpServletResponse response, final String [] pathSegments)
+  private void putRowXml(HTable table, String row, 
+    final HttpServletRequest request, final HttpServletResponse response, 
+    final String [] pathSegments)
   throws IOException, ServletException{
 
     DocumentBuilderFactory docBuilderFactory 
@@ -292,7 +296,7 @@
     
     try{
       // start an update
-      Text key = new Text(pathSegments[2]);
+      Text key = new Text(row);
       lock_id = table.startUpdate(key);
 
       // set the columns from the xml
@@ -457,7 +461,10 @@
     // grab the table we're operating on
     HTable table = getTable(getTableName(pathSegments));
     
-    Text key = new Text(pathSegments[2]);
+    // pull the row key out of the path
+    String row = URLDecoder.decode(pathSegments[2], HConstants.UTF8_ENCODING);
+    
+    Text key = new Text(row);
 
     String[] columns = request.getParameterValues(COLUMN);