Uploaded image for project: 'Hippo CMS'
  1. Hippo CMS
  2. CMS-9449

Dependency commons-lang is not managed properly

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: CMS-10.0-GA, 3.0.0
    • Fix Version/s: 3.1.0
    • Component/s: None
    • Labels:
    • Similar issues:

      Description

      Currently the commons-lang dependency used by projects is managed via an explicit dependency in the dependencyManagement section of the root pom.xml generated by the Essentials archetype. This gives the (false) impressions that the commons-lang version can be easily changed in projects. Our stack requires a minimal version of commons-lang to behave correctly. In FCS that was commons-lang 2.5, because the InlineSvg class in the CMS used ArrayUtils#isNotEmpty. In GA that class has been refactored so commons-lang 2.4 is also good enough as a minimal dependency. But, for example, changing the commons-lang dependency to 2.1 will make the repository throw an exception while starting up.

      The commons-lang version in the generated root pom.xml of projects also makes it harder to bump the commons-lang dependency in our stack, if needed in the future: projects will have to change the version in their generated root pom.xml too when upgrading.

      The version should be managed in another way, e.g. via the project pom and/or dependency management in cms-api, cms-dependencies, repository-dependencies, and/or maybe Essentials .

      Steps to reproduce:
      1. check out the tagging demo: https://svn.onehippo.org/repos/hippo/hippo-cms7/plugins/content-tagging/demo/trunk
      2. change the parent dependency in the root pom.xml file to 10.0.1 (so it uses the Hippo 10 FCS release)
      3. build and start the project
      4. login to the CMS

      Expected: the CMS dashboard shows
      Actual: a white screen saying "Server error" is shown and the following stacktrace is thrown. Reason: the demo pulls in commons-lang 2.4 instead of commons-lang 2.5. This demo does not specify an explicit version of commons-lang, so it reveals that our stack does not manage that dependency properly by itself.

      [INFO] [talledLocalContainer] SEVERE: Servlet.service() for servlet [default] in context with path [/cms] threw exception [Filter execution threw an exception] with root cause
      [INFO] [talledLocalContainer] java.lang.NoSuchMethodError: org.apache.commons.lang.ArrayUtils.isNotEmpty([Ljava/lang/Object;)Z
      [INFO] [talledLocalContainer] at org.hippoecm.frontend.plugins.standards.image.InlineSvg.onComponentTag(InlineSvg.java:55)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2507)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.WebComponent.onRender(WebComponent.java:56)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1532)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1487)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.FragmentMarkupSourcingStrategy.onComponentTagBody(FragmentMarkupSourcingStrategy.java:86)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2536)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1532)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:689)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.renderAssociatedMarkup(AssociatedMarkupSourcingStrategy.java:76)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy.onComponentTagBody(PanelMarkupSourcingStrategy.java:112)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2536)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1532)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1487)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.link.AbstractLink.onComponentTagBody(AbstractLink.java:186)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2536)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1532)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1487)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2536)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1532)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1487)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2536)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.list.Loop.renderItem(Loop.java:167)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.list.Loop.renderChild(Loop.java:156)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.repeater.AbstractRepeater.onRender(AbstractRepeater.java:101)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1532)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1487)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2536)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1532)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1487)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2536)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1532)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:689)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.renderAssociatedMarkup(AssociatedMarkupSourcingStrategy.java:76)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy.onComponentTagBody(PanelMarkupSourcingStrategy.java:112)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRenderComponent(Component.java:2536)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      [INFO] [talledLocalContainer] at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      [INFO] [talledLocalContainer] at org.apache.wicket.Page.onRender(Page.java:887)
      [INFO] [talledLocalContainer] at org.apache.wicket.markup.html.WebPage.onRender(WebPage.java:142)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.internalRender(Component.java:2366)
      [INFO] [talledLocalContainer] at org.apache.wicket.Component.render(Component.java:2294)
      [INFO] [talledLocalContainer] at org.apache.wicket.Page.renderPage(Page.java:1024)
      [INFO] [talledLocalContainer] at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:139)
      [INFO] [talledLocalContainer] at org.hippoecm.frontend.Main$7$1.renderPage(Main.java:453)
      [INFO] [talledLocalContainer] at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:284)
      [INFO] [talledLocalContainer] at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
      [INFO] [talledLocalContainer] at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:890)
      [INFO] [talledLocalContainer] at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
      [INFO] [talledLocalContainer] at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
      [INFO] [talledLocalContainer] at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
      [INFO] [talledLocalContainer] at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
      [INFO] [talledLocalContainer] at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
      [INFO] [talledLocalContainer] at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
      [INFO] [talledLocalContainer] at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
      [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      [INFO] [talledLocalContainer] at org.hippoecm.frontend.plugins.login.ConcurrentLoginFilter.doFilter(ConcurrentLoginFilter.java:54)
      [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      [INFO] [talledLocalContainer] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
      [INFO] [talledLocalContainer] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
      [INFO] [talledLocalContainer] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      [INFO] [talledLocalContainer] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
      [INFO] [talledLocalContainer] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
      [INFO] [talledLocalContainer] at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
      [INFO] [talledLocalContainer] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
      [INFO] [talledLocalContainer] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
      [INFO] [talledLocalContainer] at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
      [INFO] [talledLocalContainer] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
      [INFO] [talledLocalContainer] at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
      [INFO] [talledLocalContainer] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1517)
      [INFO] [talledLocalContainer] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1474)
      [INFO] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      [INFO] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      [INFO] [talledLocalContainer] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      [INFO] [talledLocalContainer] at java.lang.Thread.run(Thread.java:745)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                mdenburger Mathijs den Burger (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: