Uploaded image for project: 'Falcon'
  1. Falcon
  2. FALCON-2050

Configure jetty parent classloader to be prioritized over webapp classloader

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.10
    • trunk, 0.10
    • common
    • None

    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

        1. FALCON-2050.patch
          0.6 kB
          Venkat Ranganathan

        Issue Links

          Activity

            People

              venkatnrangan Venkat Ranganathan
              venkatnrangan Venkat Ranganathan
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: