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)

Reply via email to