You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gora.apache.org by "Damien Raude-Morvan (JIRA)" <ji...@apache.org> on 2014/06/05 10:09:01 UTC

[jira] [Commented] (GORA-331) Gora 0.4 compiler crash with "enum" type

    [ https://issues.apache.org/jira/browse/GORA-331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14018570#comment-14018570 ] 

Damien Raude-Morvan commented on GORA-331:
------------------------------------------

I've prepared a PR (on GitHub) to fix this issue.
https://github.com/apache/gora/pull/2

I've imported _enum.vm_ template from Avro compiler source code (as-is) to fix GoraCompiler
crash in case schema contains an enum field type.

> Gora 0.4 compiler crash with "enum" type
> ----------------------------------------
>
>                 Key: GORA-331
>                 URL: https://issues.apache.org/jira/browse/GORA-331
>             Project: Apache Gora
>          Issue Type: Bug
>          Components: gora-compiler
>    Affects Versions: 0.4, 0.5
>            Reporter: Damien Raude-Morvan
>              Labels: patch
>             Fix For: 0.5
>
>
> As part of my work on GORA-199 I've updated some Dictanova projects to 0.4 release (more precisly to 0.5-SNAPSHOT) for testing.
> Unfortunelly, I've detected that Gora Compiler crash if there is an "enum" type field inside a record.
> {noformat}
> {
>     "name": "RecordWithEnum",
>     "namespace": "com.drazzib.com",
>     "type": "record",
>     "fields": [
>         {
>             "name": "type",
>             "type": {
>                 "name": "MyEnum",
>                 "type": "enum",
>                 "symbols": [
>                     "PERIOD",
>                     "INSTANT"
>                 ]
>             }
>         }
>     ]
> }
> {noformat}
> If you try to compile this schema with Gora 0.4, you'll get the following error :
> {noformat}
> /bin/gora goracompiler record_with_enum.avsc test/
>  
> Compiling: record_with_enum.avsc
> 74 [main] ERROR AvroVelocityLogChute - ResourceManager : unable to find resource '/org/apache/gora/compiler/templates/enum.vm' in any resource loader.
> Exception in thread "main" java.lang.RuntimeException: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/org/apache/gora/compiler/templates/enum.vm'
>         at org.apache.avro.compiler.specific.SpecificCompiler.renderTemplate(SpecificCompiler.java:329)
>         at org.apache.avro.compiler.specific.SpecificCompiler.compile(SpecificCompiler.java:371)
>         at org.apache.avro.compiler.specific.SpecificCompiler.compileToDestination(SpecificCompiler.java:316)
>         at org.apache.gora.compiler.GoraCompiler.compileSchema(GoraCompiler.java:65)
>         at org.apache.gora.compiler.cli.GoraCompilerCLI.main(GoraCompilerCLI.java:56)
> Caused by: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/org/apache/gora/compiler/templates/enum.vm'
>         at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474)
>         at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352)
>         at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)
>         at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1514)
>         at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:373)
>         at org.apache.avro.compiler.specific.SpecificCompiler.renderTemplate(SpecificCompiler.java:327)
>         ... 4 more
> {noformat}
> I've managed to workaround this problem by simply dropping avro enum.vm inside gora source.
> You can easily clone this gist [https://gist.github.com/drazzib/35e504e6e689f96dae8f] so that you can reproduce this issue.



--
This message was sent by Atlassian JIRA
(v6.2#6252)