[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-3737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs updated ZOOKEEPER-3737:
-----------------------------------------
    Comment: was deleted

(was: Funny. I made a tiny contrib (ZOOKEEPER-1583) in 2012... 8 years of 
silence, then 3 PRs in a single day :) Given how much I've used ZooKeeper in 
the interim, it's probably a testament to its dependability that I haven't felt 
the need to contribute more frequently. :))

> Unable to eliminate log4j1 transitive dependency
> ------------------------------------------------
>
>                 Key: ZOOKEEPER-3737
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3737
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: jmx, server
>    Affects Versions: 3.4.14, 3.5.7
>            Reporter: Christopher Tubbs
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Apache Accumulo is trying to switch to using log4j2 only. However, this seems 
> impossible, because ZooKeeper has a hard-coded dependency on log4j 1.2 for 
> some sort of jmx thing. The following is the error and stack trace I get 
> whenever I remove log4j 1.2 from the class path and try to run a test 
> instance of ZooKeeper as part of Accumulo's build test suite.
> {code}
> 2020-02-24T20:10:03,682 [jmx.ManagedUtil] ERROR: Problems while registering 
> log4j jmx beans!
> java.lang.ClassNotFoundException: org.apache.log4j.jmx.HierarchyDynamicMBean
>       at 
> jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) 
> ~[?:?]
>       at 
> jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
>  ~[?:?]
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
>       at java.lang.Class.forName0(Native Method) ~[?:?]
>       at java.lang.Class.forName(Class.java:315) ~[?:?]
>       at 
> org.apache.zookeeper.jmx.ManagedUtil.registerLog4jMBeans(ManagedUtil.java:72) 
> ~[zookeeper-3.5.7.jar:3.5.7]
>       at 
> org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:94)
>  ~[zookeeper-3.5.7.jar:3.5.7]
>       at 
> org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:64)
>  ~[zookeeper-3.5.7.jar:3.5.7]
>       at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[?:?]
>       at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  ~[?:?]
>       at 
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:?]
>       at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
>       at org.apache.accumulo.start.Main.lambda$execMainClass$1(Main.java:167) 
> ~[accumulo-start-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
>       at java.lang.Thread.run(Thread.java:834) [?:?]
> {code}
> I know previous work has been done on ZOOKEEPER-850 and ZOOKEEPER-1371 to 
> eliminate the use of log4j in the source, but this work does not appear to be 
> complete, since it is still required at runtime (at least, for the server... 
> but maybe for the client too... it's hard to tell from the way Accumulo runs 
> its test suite, and I'm not super familiar with ZK internals).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to