You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@orc.apache.org by "Matt Czyz (Jira)" <ji...@apache.org> on 2020/02/12 13:01:00 UTC

[jira] [Created] (ORC-596) ClassCastException when using EMR Hadoop KMS with ORC encryption

Matt Czyz created ORC-596:
-----------------------------

             Summary: ClassCastException when using EMR Hadoop KMS with ORC encryption
                 Key: ORC-596
                 URL: https://issues.apache.org/jira/browse/ORC-596
             Project: ORC
          Issue Type: Bug
          Components: Java
    Affects Versions: 1.6.2
         Environment: emr-5.29.0 
Hadoop KMS 2.8.5
            Reporter: Matt Czyz
         Attachments: WriteOrc.java, castexception.patch

I am getting cast exception from Writer when using encryption and EMR Hadoop KMS to manage keys. 
{code:java}
Exception in thread "main" java.lang.ClassCastException: org.apache.hadoop.crypto.key.kms.KMSClientProvider cannot be cast to org.apache.hadoop.crypto.key.KeyProviderCryptoExtension
	at org.apache.orc.impl.HadoopShimsPre2_7$KeyProviderImpl.createLocalKey(HadoopShimsPre2_7.java:168)
	at org.apache.orc.impl.WriterImpl.visitTypeTree(WriterImpl.java:894)
	at org.apache.orc.impl.WriterImpl.visitTypeTree(WriterImpl.java:904)
	at org.apache.orc.impl.WriterImpl.setupEncryption(WriterImpl.java:927)
	at org.apache.orc.impl.WriterImpl.<init>(WriterImpl.java:160)
	at org.apache.orc.OrcFile.createWriter(OrcFile.java:971)
{code}
Changing _(KeyProviderCryptoExtension)this.provider_ to _(KeyProviderCryptoExtension.CryptoExtension)this.provider_ at HadoopShimsPre2_7.java:168 and :188 fixes this for me.

Code to replicate attached - requires to point to a valid Hadoop KMS containing "test_key" key.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)