[ https://issues.apache.org/jira/browse/HBASE-17940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang updated HBASE-17940: ------------------------------ Affects Version/s: 2.0.0 Priority: Blocker (was: Major) Fix Version/s: 2.0.0 Component/s: pom dependencies Make it blocker for 2.0.0. > 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 > Priority: Blocker > Fix For: 2.0.0 > > > 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)