Sergey Soldatov created HBASE-19304:
---------------------------------------
Summary: KEEP_DELETED_CELLS should ignore case
Key: HBASE-19304
URL: https://issues.apache.org/jira/browse/HBASE-19304
Project: HBase
Issue Type: Bug
Components: regionserver
Affects Versions: 2.0.0-alpha-4
Reporter: Sergey Soldatov
Assignee: Sergey Soldatov
Since HBASE-12363 we start using an enum instead of boolean for
keep_deleted_cells. In ColumnFamilyDescriptorBuilder we are using valueOf to
find out the value of the property. But there is a problem: all values in ENUM
are uppercase, so if we provide the value in lowercase (and java Boolean
returns it in lowercase in toString), the table creation may fail with an
exception:
{code}
java.io.IOException: java.lang.IllegalArgumentException: No enum constant
org.apache.hadoop.hbase.KeepDeletedCells.true
at
org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1028)
at
org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:891)
at
org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:859)
at
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6966)
at
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6923)
at
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6894)
at
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6850)
at
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6801)
at
org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:285)
at
org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:110)
at
org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: No enum constant
org.apache.hadoop.hbase.KeepDeletedCells.true
at java.lang.Enum.valueOf(Enum.java:238)
at
org.apache.hadoop.hbase.KeepDeletedCells.valueOf(KeepDeletedCells.java:30)
at
org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.lambda$getStringOrDefault$23(ColumnFamilyDescriptorBuilder.java:719)
at
org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.getOrDefault(ColumnFamilyDescriptorBuilder.java:727)
at
org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.getStringOrDefault(ColumnFamilyDescriptorBuilder.java:719)
at
org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder$ModifyableColumnFamilyDescriptor.getKeepDeletedCells(ColumnFamilyDescriptorBuilder.java:901)
at
org.apache.hadoop.hbase.regionserver.ScanInfo.<init>(ScanInfo.java:69)
at org.apache.hadoop.hbase.regionserver.HStore.<init>(HStore.java:265)
at
org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5485)
at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:992)
at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:989)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)