Author: arminw
Date: Mon Aug 14 07:44:01 2006
New Revision: 431357

URL: http://svn.apache.org/viewvc?rev=431357&view=rev
Log:
fix performance issue, add logging warning (no ProxyFactory can be found)

Modified:
    
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/ProxyHelper.java

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/ProxyHelper.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/ProxyHelper.java?rev=431357&r1=431356&r2=431357&view=diff
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/ProxyHelper.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/ProxyHelper.java
 Mon Aug 14 07:44:01 2006
@@ -19,6 +19,8 @@
 import java.lang.ref.WeakReference;
 
 import org.apache.ojb.broker.PBFactoryException;
+import org.apache.ojb.broker.util.logging.LoggerFactory;
+import org.apache.ojb.broker.util.logging.Logger;
 
 /**
  * ProxyHelper used to get the real thing behind a proxy
@@ -32,7 +34,8 @@
 
     public synchronized static ProxyFactory getProxyFactory()
     {
-        if((proxyFactoryRef == null) || (proxyFactoryRef.get() == null))
+        ProxyFactory result = proxyFactoryRef != null ? (ProxyFactory) 
proxyFactoryRef.get() : null;
+        if((result == null))
         {
             try
             {
@@ -42,15 +45,22 @@
                 the ProxyFactory instance is freed this class will take care 
of that.
                 */
                 proxyFactoryRef = new 
WeakReference(AbstractProxyFactory.getProxyFactory());
+                result = (ProxyFactory) proxyFactoryRef.get();
             }
             catch(PBFactoryException ex)
             {
+                if(LoggerFactory.getDefaultLogger().isEnabledFor(Logger.WARN))
+                {
+                    LoggerFactory.getDefaultLogger().warn("[" + 
ProxyHelper.class.getName() + "]" +
+                            "Can't lookup configured 'ProxyFactory', will 
return a new instance" +
+                            " of a CGLib based ProxyFactory", ex);
+                }
                 // seems we cannot get a broker; in that case we're defaulting 
to the CGLib proxy factory
                 // (which also works for older JDKs) ie. for broker-less mode 
(only metadata)
-                return new ProxyFactoryCGLIBImpl();
+                result = new ProxyFactoryCGLIBImpl();
             }
         }
-        return (ProxyFactory) proxyFactoryRef.get();
+        return result;
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to