You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2008/07/22 20:51:33 UTC
[jira] Resolved: (HBASE-757) REST mangles table names
[ https://issues.apache.org/jira/browse/HBASE-757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stack resolved HBASE-757.
-------------------------
Resolution: Fixed
Committed.
> REST mangles table names
> ------------------------
>
> Key: HBASE-757
> URL: https://issues.apache.org/jira/browse/HBASE-757
> Project: Hadoop HBase
> Issue Type: Bug
> Reporter: stack
> Assignee: stack
> Fix For: 0.2.0
>
>
> From Sishen:
> {code}
> Hi, guys. I think i have met the problem of table query.
> When playing with the REST interface, the result is all the table name are un-readable format and i can't get the table metadata.
> After some debug, i found that if use table.getName().toString() to construct the table name string. However, getName() return a byte array. So toString() method
> jsut return the string representation of the array object. The correct way should be new String(table.getName()). I have tested it and all work well now.
> Below are patches:
> Index: org/apache/hadoop/hbase/rest/MetaHandler.java
> ===================================================================
> --- org/apache/hadoop/hbase/rest/MetaHandler.java (revision 678344)
> +++ org/apache/hadoop/hbase/rest/MetaHandler.java (working copy)
> @@ -85,7 +85,7 @@
> XMLOutputter outputter = getXMLOutputter(response.getWriter());
> outputter.startTag("tables");
> for (int i = 0; i < tables.length; i++) {
> - doElement(outputter, "table", tables[i].getName().toString());
> + doElement(outputter, "table", new String(tables[i].getName()));
> }
> outputter.endTag();
> outputter.endDocument();
> @@ -96,7 +96,7 @@
> ContentType.PLAIN.toString());
> PrintWriter out = response.getWriter();
> for (int i = 0; i < tables.length; i++) {
> - out.println(tables[i].getName().toString());
> + out.println(new String(tables[i].getName()));
> }
> out.close();
> break;
> Index: org/apache/hadoop/hbase/rest/TableHandler.java
> ===================================================================
> --- org/apache/hadoop/hbase/rest/TableHandler.java (revision 678344)
> +++ org/apache/hadoop/hbase/rest/TableHandler.java (working copy)
> @@ -391,7 +391,7 @@
> HTableDescriptor [] tables = this.admin.listTables();
> HTableDescriptor descriptor = null;
> for (int i = 0; i < tables.length; i++) {
> - if (tables[i].getName().toString().equals(tableName)) {
> + if (new String(tables[i].getName()).equals(tableName)) {
> descriptor = tables[i];
> break;
> }
> @@ -406,7 +406,7 @@
> setResponseHeader(response, 200, ContentType.XML.toString());
> XMLOutputter outputter = getXMLOutputter(response.getWriter());
> outputter.startTag("table");
> - doElement(outputter, "name", descriptor.getName().toString());
> + doElement(outputter, "name", new String(descriptor.getName()));
> outputter.startTag("columnfamilies");
> for (HColumnDescriptor e: descriptor.getFamilies()) {
> outputter.startTag("columnfamily");
> Best regards.
> sishen
> Index: org/apache/hadoop/hbase/rest/MetaHandler.java
> ===================================================================
> --- org/apache/hadoop/hbase/rest/MetaHandler.java (revision 678344)
> +++ org/apache/hadoop/hbase/rest/MetaHandler.java (working copy)
> @@ -85,7 +85,7 @@
> XMLOutputter outputter = getXMLOutputter(response.getWriter());
> outputter.startTag("tables");
> for (int i = 0; i < tables.length; i++) {
> - doElement(outputter, "table", tables[i].getName().toString());
> + doElement(outputter, "table", new String(tables[i].getName()));
> }
> outputter.endTag();
> outputter.endDocument();
> @@ -96,7 +96,7 @@
> ContentType.PLAIN.toString());
> PrintWriter out = response.getWriter();
> for (int i = 0; i < tables.length; i++) {
> - out.println(tables[i].getName().toString());
> + out.println(new String(tables[i].getName()));
> }
> out.close();
> break;
> Index: org/apache/hadoop/hbase/rest/TableHandler.java
> ===================================================================
> --- org/apache/hadoop/hbase/rest/TableHandler.java (revision 678344)
> +++ org/apache/hadoop/hbase/rest/TableHandler.java (working copy)
> @@ -391,7 +391,7 @@
> HTableDescriptor [] tables = this.admin.listTables();
> HTableDescriptor descriptor = null;
> for (int i = 0; i < tables.length; i++) {
> - if (tables[i].getName().toString().equals(tableName)) {
> + if (new String(tables[i].getName()).equals(tableName)) {
> descriptor = tables[i];
> break;
> }
> @@ -406,7 +406,7 @@
> setResponseHeader(response, 200, ContentType.XML.toString());
> XMLOutputter outputter = getXMLOutputter(response.getWriter());
> outputter.startTag("table");
> - doElement(outputter, "name", descriptor.getName().toString());
> + doElement(outputter, "name", new String(descriptor.getName()));
> outputter.startTag("columnfamilies");
> for (HColumnDescriptor e: descriptor.getFamilies()) {
> outputter.startTag("columnfamily");
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.