[
https://issues.apache.org/jira/browse/KNOX-199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Larry McCay resolved KNOX-199.
------------------------------
Resolution: Fixed
Fix Version/s: (was: 0.3.1)
0.4.0
> ExampleHBase.groovy fails with HBase 0.96 due to empty column qualifier REST
> API incompatibility
> ------------------------------------------------------------------------------------------------
>
> Key: KNOX-199
> URL: https://issues.apache.org/jira/browse/KNOX-199
> Project: Apache Knox
> Issue Type: Bug
> Components: ClientDSL
> Affects Versions: 0.3.0
> Environment: Knox 0.3.0, Sandbox 2.0 GA (HBase 0.96)
> Reporter: Kevin Minder
> Assignee: Vladimir Tkhir
> Priority: Critical
> Fix For: 0.4.0
>
> Attachments: KNOX-199.patch
>
>
> When running the samples/ExampleHBase.groovy Knox Client DSL script, an
> exception is produced on the client side. This is due to an incompatibility
> between Knox 0.3.0 Client DSL and a change in HBase 0.96. The result is that
> the Knox Client DSL cannot be used to access HBase operations that involve
> empty column qualifiers. This only affects the Knox Client DSL. The HBase
> REST API can still be used via the Knox Gateway for both HBase 0.95 and 0.96.
> // This Client DSL command will fail with Knox 0.3.0 Client DSL and HBase
> 0.96. It will work with HBase 0.95.
> HBase.session(session).table("table1").row("row_id_1").store().column("family1",
> null, "fam_value1").now()
> // It may also be possible in some cases to work around this problem by
> adding an extra ":" to the column family parameter
> HBase.session(session).table("table1").row("row_id_1").store().column("family1:",
> null, "fam_value1").now()
>
> // This Client DSL command will work with both HBase 0.95 and HBase 0.96.
> HBase.session(session).table("table1").row("row_id_1").store().column("family1",
> "col1", "col_value1").now()
> The exception produced on the client side is shown below:
> Inserting data into table...
> Caught: org.apache.hadoop.gateway.shell.HadoopException:
> org.apache.hadoop.gateway.shell.ErrorResponse: HTTP/1.1 400 Bad Request
> org.apache.hadoop.gateway.shell.HadoopException:
> org.apache.hadoop.gateway.shell.ErrorResponse: HTTP/1.1 400 Bad Request
> at
> org.apache.hadoop.gateway.shell.AbstractRequest.now(AbstractRequest.java:72)
> at org.apache.hadoop.gateway.shell.AbstractRequest$now.call(Unknown
> Source)
> at
> org.apache.hadoop.gateway.shell.hbase.ExampleHBase.run(ExampleHBase.groovy:81)
> at org.apache.hadoop.gateway.shell.Shell.main(Shell.java:40)
> at
> org.apache.hadoop.gateway.launcher.Invoker.invokeMainMethod(Invoker.java:64)
> at org.apache.hadoop.gateway.launcher.Invoker.invoke(Invoker.java:37)
> at org.apache.hadoop.gateway.launcher.Command.run(Command.java:101)
> at org.apache.hadoop.gateway.launcher.Launcher.run(Launcher.java:70)
> at org.apache.hadoop.gateway.launcher.Launcher.main(Launcher.java:49)
> Caused by: org.apache.hadoop.gateway.shell.ErrorResponse: HTTP/1.1 400 Bad
> Request
> at org.apache.hadoop.gateway.shell.Hadoop.executeNow(Hadoop.java:107)
> at
> org.apache.hadoop.gateway.shell.AbstractRequest.execute(AbstractRequest.java:47)
> at
> org.apache.hadoop.gateway.shell.hbase.table.row.StoreRow$Request.access$400(StoreRow.java:47)
> at
> org.apache.hadoop.gateway.shell.hbase.table.row.StoreRow$Request$1.call(StoreRow.java:116)
> at
> org.apache.hadoop.gateway.shell.hbase.table.row.StoreRow$Request$1.call(StoreRow.java:77)
> at
> org.apache.hadoop.gateway.shell.AbstractRequest.now(AbstractRequest.java:70)
> ... 8 more
--
This message was sent by Atlassian JIRA
(v6.2#6252)