You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2012/07/20 20:18:25 UTC
svn commit: r1363887 -
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
Author: rmannibucau
Date: Fri Jul 20 18:18:25 2012
New Revision: 1363887
URL: http://svn.apache.org/viewvc?rev=1363887&view=rev
Log:
OWB-674 avoiding classes dependency which can fail with some JVM
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java?rev=1363887&r1=1363886&r2=1363887&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java Fri Jul 20 18:18:25 2012
@@ -23,7 +23,6 @@ package org.apache.webbeans.logger;
*/
import org.apache.webbeans.config.OWBLogConst;
-import org.apache.webbeans.util.WebBeansUtil;
import java.text.MessageFormat;
import java.util.Locale;
@@ -57,7 +56,14 @@ public final class WebBeansLoggerFacade
{
try
{
- Class<?> factoryClazz = WebBeansUtil.getCurrentClassLoader().loadClass(factoryClassname);
+ // don't use the org.apache.webbeans.util.WebBeansUtil.getCurrentClassLoader()
+ // to avoid weird dependency and potential failing
+ ClassLoader classloader = Thread.currentThread().getContextClassLoader();
+ if(classloader == null)
+ {
+ classloader = WebBeansLoggerFacade.class.getClassLoader();
+ }
+ Class<?> factoryClazz = classloader.loadClass(factoryClassname);
factory = (WebBeansLoggerFactory) factoryClazz.newInstance();
}
catch (Exception e)
Re: svn commit: r1363887 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
Posted by Joseph Bergmark <be...@gmail.com>.
That makes perfect sense, thanks!
On Mon, Sep 10, 2012 at 1:07 AM, Romain Manni-Bucau
<rm...@gmail.com> wrote:
> Hi,
>
> Yeah it does exactly the same but the code is in a static block so it is
> executed when the class is loaded and the imports between both classes make
> it fail (circular dep). I didnt like to copy paste the code but it is a
> sure way to avoid linkageerror.
>
> About java 2 sec you are right it is ignored here.
>
> - Romain
> Le 10 sept. 2012 02:34, "Joseph Bergmark" <be...@apache.org> a écrit :
>
>> I know was well over a month ago, but do you remember why:
>>
>> WebBeansUtil.getCurrentClassLoader().loadClass(factoryClassname)
>>
>> is problematic, but a direct call to:
>>
>> ClassLoader classloader = Thread.currentThread().getContextClassLoader();
>>
>> is not? They appear basically the same. Unless I'm missing
>> something, both will fail when java 2 security is enabled as there
>> doesn't appear to be a doPriv block or a hook into the security
>> service.
>>
>> Sincerely,
>>
>> Joe
>>
>> On Fri, Jul 20, 2012 at 2:18 PM, <rm...@apache.org> wrote:
>> > Author: rmannibucau
>> > Date: Fri Jul 20 18:18:25 2012
>> > New Revision: 1363887
>> >
>> > URL: http://svn.apache.org/viewvc?rev=1363887&view=rev
>> > Log:
>> > OWB-674 avoiding classes dependency which can fail with some JVM
>> >
>> > Modified:
>> >
>> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
>> >
>> > Modified:
>> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
>> > URL:
>> http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java?rev=1363887&r1=1363886&r2=1363887&view=diff
>> >
>> ==============================================================================
>> > ---
>> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
>> (original)
>> > +++
>> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
>> Fri Jul 20 18:18:25 2012
>> > @@ -23,7 +23,6 @@ package org.apache.webbeans.logger;
>> > */
>> >
>> > import org.apache.webbeans.config.OWBLogConst;
>> > -import org.apache.webbeans.util.WebBeansUtil;
>> >
>> > import java.text.MessageFormat;
>> > import java.util.Locale;
>> > @@ -57,7 +56,14 @@ public final class WebBeansLoggerFacade
>> > {
>> > try
>> > {
>> > - Class<?> factoryClazz =
>> WebBeansUtil.getCurrentClassLoader().loadClass(factoryClassname);
>> > + // don't use the
>> org.apache.webbeans.util.WebBeansUtil.getCurrentClassLoader()
>> > + // to avoid weird dependency and potential failing
>> > + ClassLoader classloader =
>> Thread.currentThread().getContextClassLoader();
>> > + if(classloader == null)
>> > + {
>> > + classloader =
>> WebBeansLoggerFacade.class.getClassLoader();
>> > + }
>> > + Class<?> factoryClazz =
>> classloader.loadClass(factoryClassname);
>> > factory = (WebBeansLoggerFactory)
>> factoryClazz.newInstance();
>> > }
>> > catch (Exception e)
>> >
>> >
>>
Re: svn commit: r1363887 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi,
Yeah it does exactly the same but the code is in a static block so it is
executed when the class is loaded and the imports between both classes make
it fail (circular dep). I didnt like to copy paste the code but it is a
sure way to avoid linkageerror.
About java 2 sec you are right it is ignored here.
- Romain
Le 10 sept. 2012 02:34, "Joseph Bergmark" <be...@apache.org> a écrit :
> I know was well over a month ago, but do you remember why:
>
> WebBeansUtil.getCurrentClassLoader().loadClass(factoryClassname)
>
> is problematic, but a direct call to:
>
> ClassLoader classloader = Thread.currentThread().getContextClassLoader();
>
> is not? They appear basically the same. Unless I'm missing
> something, both will fail when java 2 security is enabled as there
> doesn't appear to be a doPriv block or a hook into the security
> service.
>
> Sincerely,
>
> Joe
>
> On Fri, Jul 20, 2012 at 2:18 PM, <rm...@apache.org> wrote:
> > Author: rmannibucau
> > Date: Fri Jul 20 18:18:25 2012
> > New Revision: 1363887
> >
> > URL: http://svn.apache.org/viewvc?rev=1363887&view=rev
> > Log:
> > OWB-674 avoiding classes dependency which can fail with some JVM
> >
> > Modified:
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
> >
> > Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
> > URL:
> http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java?rev=1363887&r1=1363886&r2=1363887&view=diff
> >
> ==============================================================================
> > ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
> (original)
> > +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
> Fri Jul 20 18:18:25 2012
> > @@ -23,7 +23,6 @@ package org.apache.webbeans.logger;
> > */
> >
> > import org.apache.webbeans.config.OWBLogConst;
> > -import org.apache.webbeans.util.WebBeansUtil;
> >
> > import java.text.MessageFormat;
> > import java.util.Locale;
> > @@ -57,7 +56,14 @@ public final class WebBeansLoggerFacade
> > {
> > try
> > {
> > - Class<?> factoryClazz =
> WebBeansUtil.getCurrentClassLoader().loadClass(factoryClassname);
> > + // don't use the
> org.apache.webbeans.util.WebBeansUtil.getCurrentClassLoader()
> > + // to avoid weird dependency and potential failing
> > + ClassLoader classloader =
> Thread.currentThread().getContextClassLoader();
> > + if(classloader == null)
> > + {
> > + classloader =
> WebBeansLoggerFacade.class.getClassLoader();
> > + }
> > + Class<?> factoryClazz =
> classloader.loadClass(factoryClassname);
> > factory = (WebBeansLoggerFactory)
> factoryClazz.newInstance();
> > }
> > catch (Exception e)
> >
> >
>
Re: svn commit: r1363887 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
Posted by Joseph Bergmark <be...@apache.org>.
I know was well over a month ago, but do you remember why:
WebBeansUtil.getCurrentClassLoader().loadClass(factoryClassname)
is problematic, but a direct call to:
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
is not? They appear basically the same. Unless I'm missing
something, both will fail when java 2 security is enabled as there
doesn't appear to be a doPriv block or a hook into the security
service.
Sincerely,
Joe
On Fri, Jul 20, 2012 at 2:18 PM, <rm...@apache.org> wrote:
> Author: rmannibucau
> Date: Fri Jul 20 18:18:25 2012
> New Revision: 1363887
>
> URL: http://svn.apache.org/viewvc?rev=1363887&view=rev
> Log:
> OWB-674 avoiding classes dependency which can fail with some JVM
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
>
> Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java?rev=1363887&r1=1363886&r2=1363887&view=diff
> ==============================================================================
> --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java (original)
> +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/logger/WebBeansLoggerFacade.java Fri Jul 20 18:18:25 2012
> @@ -23,7 +23,6 @@ package org.apache.webbeans.logger;
> */
>
> import org.apache.webbeans.config.OWBLogConst;
> -import org.apache.webbeans.util.WebBeansUtil;
>
> import java.text.MessageFormat;
> import java.util.Locale;
> @@ -57,7 +56,14 @@ public final class WebBeansLoggerFacade
> {
> try
> {
> - Class<?> factoryClazz = WebBeansUtil.getCurrentClassLoader().loadClass(factoryClassname);
> + // don't use the org.apache.webbeans.util.WebBeansUtil.getCurrentClassLoader()
> + // to avoid weird dependency and potential failing
> + ClassLoader classloader = Thread.currentThread().getContextClassLoader();
> + if(classloader == null)
> + {
> + classloader = WebBeansLoggerFacade.class.getClassLoader();
> + }
> + Class<?> factoryClazz = classloader.loadClass(factoryClassname);
> factory = (WebBeansLoggerFactory) factoryClazz.newInstance();
> }
> catch (Exception e)
>
>