You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2017/04/19 13:48:41 UTC

[jira] [Commented] (HBASE-17940) HMaster can not start due to Jasper related classes conflict

    [ https://issues.apache.org/jira/browse/HBASE-17940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15974695#comment-15974695 ] 

Ted Yu commented on HBASE-17940:
--------------------------------

lgtm, pending QA

> HMaster can not start due to Jasper related classes conflict
> ------------------------------------------------------------
>
>                 Key: HBASE-17940
>                 URL: https://issues.apache.org/jira/browse/HBASE-17940
>             Project: HBase
>          Issue Type: Bug
>          Components: dependencies, pom
>    Affects Versions: 2.0.0
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Blocker
>             Fix For: 2.0.0
>
>         Attachments: HBASE-17940.patch
>
>
> I got this
> {noformat}
> java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster.
>         at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2692)
>         at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:235)
>         at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139)
>         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>         at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:127)
>         at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2703)
> Caused by: java.lang.NoSuchFieldError: IS_SECURITY_ENABLED
>         at org.apache.jasper.compiler.JspRuntimeContext.<init>(JspRuntimeContext.java:194)
>         at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:159)
>         at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:640)
>         at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:419)
>         at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:875)
>         at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:348)
>         at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1379)
>         at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1341)
>         at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:772)
>         at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:261)
>         at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:517)
>         at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>         at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>         at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>         at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>         at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>         at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>         at org.eclipse.jetty.server.Server.start(Server.java:405)
>         at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
>         at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>         at org.eclipse.jetty.server.Server.doStart(Server.java:372)
>         at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>         at org.apache.hadoop.hbase.http.HttpServer.start(HttpServer.java:969)
>         at org.apache.hadoop.hbase.http.InfoServer.start(InfoServer.java:100)
>         at org.apache.hadoop.hbase.regionserver.HRegionServer.putUpWebUI(HRegionServer.java:1887)
>         at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:620)
>         at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:461)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>         at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2685)
>         ... 5 more
> {noformat}
> The problem is that, we have same classes in two jars, javax.servlet.jsp-2.3.2.jar and jasper-compiler-5.5.23.jar, such as org.apache.jasper.Constants and org.apache.jasper.compiler.JspRuntimeContext. Here seems for JspRuntimeContext we use the version from javax.servlet.jsp, but for Constants we use the version from jasper-compiler.
> javax.servlet.jsp is a transitive dependency from jetty jsp, and jasper-compiler is a dependency directly in our pom for hbase-server.
> We need to find a way to deal with it.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)