[
https://issues.apache.org/jira/browse/PHOENIX-2477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15034989#comment-15034989
]
Enis Soztutar commented on PHOENIX-2477:
----------------------------------------
BaseDecoder is {{InputStream}} based, versus {{KeyValueDecoder}} uses
DataInput.
{code}
public class IndexKeyValueDecoder extends BaseDecoder {
public IndexKeyValueDecoder(InputStream is){
super(is);
}
protected KeyValue parseCell() throws IOException{
return KeyValueCodec.readKeyValue((DataInput) this.in);
}
}
{code}
HBase has moved from DataInput to InputStream in going from KV to Cell based
internals. Seems that going that way in Phoenix is the way to go. cc
[~apurtell], [~anoop.hbase].
> ClassCastException in IndexedWALEditCodec after HBASE-14501
> ------------------------------------------------------------
>
> Key: PHOENIX-2477
> URL: https://issues.apache.org/jira/browse/PHOENIX-2477
> Project: Phoenix
> Issue Type: Bug
> Reporter: Enis Soztutar
> Assignee: Enis Soztutar
> Priority: Critical
>
> HBASE-14501 fixed the semantics in using the InputStream.available() and the
> interface between the actual Decoder and BaseDecoder.
> Running Phoenix with IndexedWALEditCodec on top of an HBase version
> containing HBASE-14501 now causes silent data loss since the Decoder throws
> {code}
> java.lang.ClassCastException: org.apache.hadoop.hbase.codec.BaseDecoder$PBIS
> cannot be cast to java.io.DataInput
> {code}
> which gets silently ignored from ProtobufLogReader.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)