Description
FALCON-1942 allowed external libraries to be configured so that libraries like Atlas hook can be configured (which the Atlas code itself was part of the Atlas client installation). Unfortunately, the FACLON_EXTRA_CLASSPATH only is available in the parent classloader and not via the webapp classloader causing stack trace like below to be thrown
To fix this, we need to enable the parent classloader to have priority over the webapp classloader. When a class or resource is resolved, the parent classloader will be used and then the child classloader.
Since all falcon jars are also in the parent path this should fix the issue with Atlas hook and similar scnearios.
2016-06-24 14:50:47,022 ERROR - [main:] ~ Failed startup of context org.mortbay.jetty.webapp.WebAppContext@46e481d6
Unknown macro: {/,/usr/hdp/current/falcon-server/server/webapp/falcon}(log:87)
java.lang.ClassCastException: org.apache.falcon.atlas.service.AtlasService cannot be cast to org.apache.falcon.service.FalconService
at org.apache.falcon.service.ServiceInitializer.initialize(ServiceInitializer.java:43)
at org.apache.falcon.listener.ContextStartupListener.contextInitialized(ContextStartupListener.java:56)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:550)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:519)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.apache.falcon.util.EmbeddedServer.start(EmbeddedServer.java:57)
at org.apache.falcon.FalconServer.main(FalconServer.java:118)
Attachments
Attachments
Issue Links
- links to