[ 
https://issues.apache.org/jira/browse/ACCUMULO-1565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sean Hickey updated ACCUMULO-1565:
----------------------------------

    Status: Patch Available  (was: Open)

I needed this to work for Table Namespaces (ACCUMULO-802), so I thought I'd try 
to fix it. This patch only modifies CloneTable to use an empty string instead 
of null when excluding properties. I'm not sure if it would screw up anything 
(can there be empty-string property values?), but it was a small enough fix 
that I thought I'd post it.
                
> Clonetable with excluded properties causes a NullPointerException
> -----------------------------------------------------------------
>
>                 Key: ACCUMULO-1565
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-1565
>             Project: Accumulo
>          Issue Type: Bug
>            Reporter: Sean Hickey
>            Assignee: Eric Newton
>            Priority: Critical
>             Fix For: 1.6.0
>
>
> When cloning a table, there's an option to exclude certain properties from 
> being copied over. When those excluded properties are processed in clone() in 
> TableOperations, they are passed as options with a key and a null value. When 
> passed through Thrift, the null value isn't expected because it uses the same 
> process to set properties as well. Here's a stack trace.
> {code}
> org.apache.accumulo.core.client.AccumuloException
>       at 
> org.apache.accumulo.core.client.admin.TableOperationsImpl.doTableOperation(TableOperationsImpl.java:319)
>       at 
> org.apache.accumulo.core.client.admin.TableOperationsImpl.doTableOperation(TableOperationsImpl.java:285)
>       at 
> org.apache.accumulo.core.client.admin.TableOperationsImpl.clone(TableOperationsImpl.java:686)
>       at 
> org.apache.accumulo.core.util.shell.commands.CloneTableCommand.execute(CloneTableCommand.java:68)
>       at org.apache.accumulo.core.util.shell.Shell.execCommand(Shell.java:617)
>       at org.apache.accumulo.core.util.shell.Shell.start(Shell.java:496)
>       at org.apache.accumulo.core.util.shell.Shell.main(Shell.java:418)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at org.apache.accumulo.start.Main$1.run(Main.java:105)
>       at java.lang.Thread.run(Thread.java:679)
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.thrift.protocol.TCompactProtocol.writeString(TCompactProtocol.java:325)
>       at 
> org.apache.accumulo.core.master.thrift.MasterClientService$executeTableOperation_args$executeTableOperation_argsStandardScheme.write(MasterClientService.java:15606)
>       at 
> org.apache.accumulo.core.master.thrift.MasterClientService$executeTableOperation_args$executeTableOperation_argsStandardScheme.write(MasterClientService.java:15467)
>       at 
> org.apache.accumulo.core.master.thrift.MasterClientService$executeTableOperation_args.write(MasterClientService.java:15373)
>       at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:63)
>       at 
> org.apache.accumulo.core.master.thrift.MasterClientService$Client.send_executeTableOperation(MasterClientService.java:493)
>       at 
> org.apache.accumulo.core.master.thrift.MasterClientService$Client.executeTableOperation(MasterClientService.java:479)
>       at 
> org.apache.accumulo.core.client.admin.TableOperationsImpl.executeTableOperation(TableOperationsImpl.java:241)
>       at 
> org.apache.accumulo.core.client.admin.TableOperationsImpl.doTableOperation(TableOperationsImpl.java:294)
>       ... 12 more
> {code}

--
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

Reply via email to