Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Hard reference to "org.apache.log4j.Priority" #785

Closed
GoogleCodeExporter opened this issue Apr 21, 2015 · 12 comments
Closed

Hard reference to "org.apache.log4j.Priority" #785

GoogleCodeExporter opened this issue Apr 21, 2015 · 12 comments

Comments

@GoogleCodeExporter
Copy link

What version of the MyBatis are you using?
3.2.0

Please describe the problem.  Unit tests are best!
When upgrading to MyBatis 3.2.0 I discovered an error, saying 
"java.lang.NoClassDefFoundError: org/apache/log4j/Priority". This error is 
correct since I do not use Log4J.

What is the expected output? What do you see instead?
If MyBatis needs Log4J it should declare it as dependency. Otherwise it should 
not be hardlinked.

Can you provide stack trace, logs, error messages that are displayed?
java.lang.NoClassDefFoundError: org/apache/log4j/Priority
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:266)
    at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:176)
    at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:87)
    at org.apache.ibatis.io.Resources.classForName(Resources.java:254)
    at org.apache.ibatis.type.TypeAliasRegistry.registerAlias(TypeAliasRegistry.java:153)
    at org.apache.ibatis.session.Configuration.<init>(Configuration.java:173)
    at org.apache.ibatis.session.Configuration.<init>(Configuration.java:149)
    at org.mybatis.guice.configuration.ConfigurationProvider.get(ConfigurationProvider.java:251)
    at org.mybatis.guice.configuration.ConfigurationProvider.get(ConfigurationProvider.java:43)
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:55)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.Scopes$1$1.get(Scopes.java:65)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.SingleMethodInjector.inject(SingleMethodInjector.java:83)
    at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:94)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.Scopes$1$1.get(Scopes.java:65)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:53)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.Scopes$1$1.get(Scopes.java:65)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.SingleMethodInjector.inject(SingleMethodInjector.java:83)
    at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:94)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.Scopes$1$1.get(Scopes.java:65)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:53)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.Scopes$1$1.get(Scopes.java:65)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
    at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
    at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
    at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
    at com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
    at com.google.inject.internal.Initializer$InjectableReference.get(Initializer.java:147)
    at com.google.inject.internal.Initializer.injectAll(Initializer.java:92)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:173)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
    at com.google.inject.Guice.createInjector(Guice.java:95)
    at com.google.inject.Guice.createInjector(Guice.java:72)
    at com.google.inject.Guice.createInjector(Guice.java:62)
...

Please provide any additional information below.
With version 3.1.1 this error does not occur.

Original issue reported on code.google.com by t.gawan...@gmail.com on 23 Feb 2013 at 3:14

@GoogleCodeExporter
Copy link
Author

Hi t.gawantka. Thanks a lot for the report.

Already fixed for 3.2.1.

For the time being, include log4j in your classpath and force the log impl with 
the specific setting:

http://mybatis.github.com/mybatis-3/configuration.html#settings

Original comment by eduardo.macarron on 23 Feb 2013 at 4:36

  • Changed state: Fixed
  • Added labels: Component-SqlMaps, Priority-Low, Target-Release3.2.1, Version-Release3.x
  • Removed labels: Priority-High

@GoogleCodeExporter
Copy link
Author

BTW we are planning a fast release to fix this bug. Could you check the 
snapshot?

http://code.google.com/p/mybatis/downloads/detail?name=mybatis-3.2.1-SNAPSHOT.ja
r

Original comment by eduardo.macarron on 23 Feb 2013 at 5:37

@GoogleCodeExporter
Copy link
Author

BTW, probably you do not need to add a setting. In case there is more than one 
impl in the system the selection is done in this order:

SLF4J
Apache Commons Logging
Log4J
JDK logging 

Original comment by eduardo.macarron on 24 Feb 2013 at 10:07

@GoogleCodeExporter
Copy link
Author

[deleted comment]

2 similar comments
@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

Issue 788 has been merged into this issue.

Original comment by eduardo.macarron on 25 Feb 2013 at 8:58

@GoogleCodeExporter
Copy link
Author

Issue 790 has been merged into this issue.

Original comment by eduardo.macarron on 1 Mar 2013 at 3:42

@GoogleCodeExporter
Copy link
Author

Is there a timeline for releasing this fix?

Original comment by gesly.ge...@gmail.com on 1 Mar 2013 at 11:36

@GoogleCodeExporter
Copy link
Author

Issue 793 has been merged into this issue.

Original comment by eduardo.macarron on 6 Mar 2013 at 2:06

@GoogleCodeExporter
Copy link
Author

Hi. 3.2.1 is ready for a release. We just need some spare time to do it.

Original comment by eduardo.macarron on 6 Mar 2013 at 2:07

@GoogleCodeExporter
Copy link
Author

Original comment by eduardo.macarron on 6 Mar 2013 at 3:12

  • Changed state: Fixed

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant