Enis Soztutar created HBASE-14904:
-------------------------------------
Summary: Mark Base[En|De]coder LimitedPrivate and fix binary
compat issue
Key: HBASE-14904
URL: https://issues.apache.org/jira/browse/HBASE-14904
Project: HBase
Issue Type: Bug
Reporter: Enis Soztutar
Assignee: Enis Soztutar
Fix For: 2.0.0, 1.2.0, 1.3.0, 1.1.3, 0.98.17, 1.0.4
PHOENIX-2477 revealed that the changes from HBASE-14501 breaks binary
compatibility in Phoenix compiled with earlier versions of HBase and run agains
later versions.
This is one of the areas that the boundary is not clear, but it won't hurt us
to fix it.
The exception trace is:
{code}
Exception in thread "main" java.lang.NoSuchFieldError: in
at
org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec$PhoenixBaseDecoder.<init>(IndexedWALEditCodec.java:106)
at
org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec$IndexKeyValueDecoder.<init>(IndexedWALEditCodec.java:121)
at
org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec.getDecoder(IndexedWALEditCodec.java:63)
at
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initAfterCompression(ProtobufLogReader.java:292)
at
org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:82)
at
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:148)
at
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:316)
at
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:281)
at
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:269)
at
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:418)
at
org.apache.hadoop.hbase.wal.WALPrettyPrinter.processFile(WALPrettyPrinter.java:247)
at
org.apache.hadoop.hbase.wal.WALPrettyPrinter.run(WALPrettyPrinter.java:422)
at
org.apache.hadoop.hbase.wal.WALPrettyPrinter.main(WALPrettyPrinter.java:357)
{code}
Although {{BaseDecoder.in}} is still there, it got changed to be a class rather
than an interface. BaseDecoder is marked Private, thus the binary compat check
is not run at all. Not sure whether it would have caught this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)