[jbossts-issues] [JBoss JIRA] Updated: (JBTM-641) com.arjuna.common.util.logging.LogFactory#loadFactory does not handle properly null argument
Jonathan Halliday (JIRA)
jira-events at lists.jboss.org
Wed Nov 4 07:57:05 EST 2009
[ https://jira.jboss.org/jira/browse/JBTM-641?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Halliday updated JBTM-641:
-----------------------------------
Fix Version/s: 4.9.0
Assignee: Jonathan Halliday
> com.arjuna.common.util.logging.LogFactory#loadFactory does not handle properly null argument
> --------------------------------------------------------------------------------------------
>
> Key: JBTM-641
> URL: https://jira.jboss.org/jira/browse/JBTM-641
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JTS
> Affects Versions: 4.8.0
> Environment: standalone (J2SE) use of jbossts-jta-4.8.0.GA.zip
> Reporter: Jacques-Olivier Goussard
> Assignee: Jonathan Halliday
> Fix For: 4.9.0
>
>
> com.arjuna.common.util.logging.LogFactory#setupLogSystem makes calls to
> com.arjuna.common.util.logging.LogFactory#loadFactory("com.arjuna.common.internal.util.logging.jakarta.JakartaLogFactory", null) when the jakarta log system is selected.
> When the logger class name argument is nullm the loadfactory will try to instanciate the "com.arjuna.common.internal.util.logging.jakarta.JakartaLogFactory" class with a no-arg constructor and this class does NOT have a
> no-arg ctor.
> private static LogFactoryInterface loadFactory(String classname, String arg) throws LogConfigurationException
> {
> try {
> Class factoryClass = Thread.currentThread().getContextClassLoader().loadClass(classname);
> LogFactoryInterface logFactoryInterface = null;
> if(arg == null) {
> // THIS WILL FAIL AS "com.arjuna.common.internal.util.logging.jakarta.JakartaLogFactory" AS NO SUCH CTOR
> logFactoryInterface = (LogFactoryInterface)factoryClass.newInstance();
> } else {
> Constructor ctor = factoryClass.getConstructor(new Class[] { String.class});
> logFactoryInterface = (LogFactoryInterface)ctor.newInstance(arg);
> }
> return logFactoryInterface;
> } catch (Exception e) {
> throw new LogConfigurationException(e);
> }
> }
> Proposed fix: The fix is to simply always forward the argument to the String arg ctor - with a null arg, the JakartaLogFactory will properly
> use the default logger from commons.logging
> private static LogFactoryInterface loadFactory(String classname, String arg) throws LogConfigurationException
> {
> try {
> Class factoryClass = Thread.currentThread().getContextClassLoader().loadClass(classname);
> LogFactoryInterface logFactoryInterface = null;
> Constructor ctor = factoryClass.getConstructor(new Class[] { String.class});
> logFactoryInterface = (LogFactoryInterface)ctor.newInstance(arg);
> return logFactoryInterface;
> } catch (Exception e) {
> throw new LogConfigurationException(e);
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jbossts-issues
mailing list