[
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