You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "Edward Sargisson (JIRA)" <ji...@apache.org> on 2013/04/22 23:03:16 UTC
[jira] [Updated] (FLUME-1992) ElasticSearch dependency is marked
optional
[ https://issues.apache.org/jira/browse/FLUME-1992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Edward Sargisson updated FLUME-1992:
------------------------------------
Attachment: flume-1992-1.4-1.patch
User Guide patch attached
> ElasticSearch dependency is marked optional
> -------------------------------------------
>
> Key: FLUME-1992
> URL: https://issues.apache.org/jira/browse/FLUME-1992
> Project: Flume
> Issue Type: Improvement
> Components: Sinks+Sources
> Affects Versions: v1.4.0
> Reporter: Harsh J
> Priority: Minor
> Attachments: flume-1992-1.4-1.patch
>
>
> FLUME-1371 added an ElasticSearch module but the dependency added in it for org.elasticsearch classes is marked {{<optional>true</optional>}}.
> This means it doesn't get generated into the builds Flume would ship and the user guide will not work unless a user manually places their version of ElasticSearch jars on the classpath. They will get the error:
> {code}
> java.lang.NoClassDefFoundError: org/elasticsearch/common/transport/TransportAddress
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:188)
> at org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:67)
> at org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:41)
> at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:415)
> at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:103)
> at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:679)
> Caused by: java.lang.ClassNotFoundException: org.elasticsearch.common.transport.TransportAddress
> at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> ... 15 more
> {code}
> Two ways to address this; either we:
> # Mark dependency as non-optional, supply a bundled elasticsearch jar (version decision could be a problem I imagine, if their releases break compatibility often)
> # Update the user guide to instruct the user to place the jar onto flume's classpath in proper manner, before following the remaining of the guide.
> Problem of the ClassNotFound originally reported by user j0sh_X over FreeNode IRC.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira