[
https://issues.apache.org/jira/browse/HBASE-19304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16259409#comment-16259409
]
Josh Elser commented on HBASE-19304:
------------------------------------
FYI [~stack]. A nice find by Sergey here that breaks some code that used to
work. Good one to include for beta-1.
> 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
> Priority: Blocker
> Fix For: 2.0.0-beta-1
>
> Attachments: HBASE-19304-v1.patch
>
>
> 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)