You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/09/18 06:38:46 UTC

svn commit: r1172197 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java

Author: dblevins
Date: Sun Sep 18 04:38:46 2011
New Revision: 1172197

URL: http://svn.apache.org/viewvc?rev=1172197&view=rev
Log:
Be more careful of null values and coercing DataSourceDefinition properties
Don't attempt to resolve any <resource-ref> references to @ManagedBean classes

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1172197&r1=1172196&r2=1172197&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Sun Sep 18 04:38:46 2011
@@ -858,7 +858,10 @@ public class AutoConfig implements Dynam
 
             Properties properties = datasource.getProperties();
             if (properties.get("JdbcUrl") == null) {
-                properties.put("JdbcUrl", getVendorUrl(properties));
+                final String url = getVendorUrl(properties);
+                if (url != null) {
+                    properties.put("JdbcUrl", url);
+                }
             }
 
             // this property is not supported by dbcp
@@ -901,7 +904,7 @@ public class AutoConfig implements Dynam
 
         final String driver = properties.getProperty("JdbcDriver");
         final String serverName = properties.getProperty("ServerName");
-        final int port = (Integer) properties.get("PortNumber");
+        final int port = getInt(properties.get("PortNumber"));
         final boolean remote = port != -1;
         final String databaseName = properties.getProperty("DatabaseName");
 
@@ -936,6 +939,18 @@ public class AutoConfig implements Dynam
         return null;
     }
 
+    private static int getInt(Object number) {
+        try {
+            return (Integer) number;
+        } catch (Exception e) {
+            try {
+                return Integer.parseInt(number+"");
+            } catch (NumberFormatException e1) {
+                return -1;
+            }
+        }
+    }
+
     private void set(Properties properties, String key, String value) {
         if (value == null || value.length() == 0) return;
         properties.put(key, value);
@@ -995,6 +1010,14 @@ public class AutoConfig implements Dynam
             return;
         }
 
+        try {
+            final Class<?> clazz = classLoader.loadClass(refType);
+            if (clazz.isAnnotationPresent(ManagedBean.class)) {
+                return;
+            }
+        } catch (Throwable t) {
+        }
+
         ResourceLink link = ejbDeployment.getResourceLink(refName);
         if (link == null) {
             String id = (mappedName.length() == 0) ? ref.getName() : mappedName;