Author: rmannibucau
Date: Tue Apr 30 06:42:04 2013
New Revision: 1477484

URL: http://svn.apache.org/r1477484
Log:
TOMEE-263 datasources are particular resource type we need to create from tomee 
side even when defined in tomcat

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    tomee/tomee/trunk/tck/cdi-tomee/src/test/resources/webapps-failing.xml
    
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
    
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java
    
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
    
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/TomEEDataSourceRealm.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1477484&r1=1477483&r2=1477484&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
 Tue Apr 30 06:42:04 2013
@@ -1960,15 +1960,21 @@ public class AutoConfig implements Dynam
         return idd;
     }
 
-    private String findResourceId(String resourceId, final String type, final 
Properties required, final AppResources appResources) {
+    private String findResourceId(final String resourceId, final String type, 
final Properties required, final AppResources appResources) {
         if (resourceId == null) {
             return null;
         }
+        return findResourceId(getResourceIds(appResources, type, required), 
resourceId);
+    }
 
-        resourceId = normalizeResourceId(resourceId);
+    public static String findResourceId(final Collection<String> resourceIds, 
final String inId) {
+        if (inId == null) {
+            return null;
+        }
+
+        final String resourceId = normalizeResourceId(inId);
 
         // check for existing resource with specified resourceId
-        final List<String> resourceIds = getResourceIds(appResources, type, 
required);
         for (final String id : resourceIds) {
             if (id.equalsIgnoreCase(resourceId)) {
                 return id;
@@ -2000,12 +2006,12 @@ public class AutoConfig implements Dynam
         return resourceIds;
     }
 
-    private String toShortName(final String resourceId) {
+    private static String toShortName(final String resourceId) {
         // check for an existing resource using the short name (everything 
ever the final '/')
         return resourceId.replaceFirst(".*/", "");
     }
 
-    private String normalizeResourceId(String resourceId) {
+    private static String normalizeResourceId(String resourceId) {
         if (resourceId == null) {
             return null;
         }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1477484&r1=1477483&r2=1477484&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 Tue Apr 30 06:42:04 2013
@@ -1347,7 +1347,7 @@ public class ConfigurationFactory implem
         return getResourceIds(type, null);
     }
 
-    protected List<String> getResourceIds(final String type, Properties 
required) {
+    public List<String> getResourceIds(final String type, Properties required) 
{
         final List<String> resourceIds = new ArrayList<String>();
 
         if (required == null)

Modified: tomee/tomee/trunk/tck/cdi-tomee/src/test/resources/webapps-failing.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/cdi-tomee/src/test/resources/webapps-failing.xml?rev=1477484&r1=1477483&r2=1477484&view=diff
==============================================================================
--- tomee/tomee/trunk/tck/cdi-tomee/src/test/resources/webapps-failing.xml 
(original)
+++ tomee/tomee/trunk/tck/cdi-tomee/src/test/resources/webapps-failing.xml Tue 
Apr 30 06:42:04 2013
@@ -24,67 +24,19 @@
         <!--<package name="org.jboss.jsr299.tck.interceptors.tests.*"/>-->
     <!--</packages>-->
     <classes>
-      <class 
name="org.jboss.jsr299.tck.tests.context.application.ejb.ApplicationContextSharedTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.dependent.ejb.DependentContextEjbTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.PassivatingContextTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor.EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingConstructorFieldInDecorator.EnterpriseBeanWithNonPassivatingFieldInDecoratorTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerInDecorator.EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor.EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInDecorator.EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor.EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonSerializableIntializerMethod.EnterpriseBeanWithNonSerializableIntializerMethodTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.finalProducerFieldNotPassivationCapable.NonPassivationCapableProducerFieldTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonPassivatingDecorator.ManagedBeanWithNonPassivatingDecoratorTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerField.NonPassivationCapableProducerFieldTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerMethod.NonPassivationCapableProducerMethodTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.unserializableSimpleInjectedIntoPassivatingEnterpriseBean.UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.session.SessionContextTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.decorators.invocation.EJBDecoratorInvocationTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.definition.qualifier.enterprise.EnterpriseQualifierDefinitionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.failsDuringBeanDiscovery.DeploymentFailureTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.event.broken.observer.notBusinessMethod.EJBObserverMethodNotBusinessMethodTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.extensions.processBean.ProcessSessionBeanTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.methodOnSessionBean.DisposalMethodOnSessionBean"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.singletonWithConversationScope.SingletonWithConversationScopeTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.singletonWithRequestScope.SingletonWithRequestScopeTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.singletonWithSessionScope.SingletonWithSessionScopeTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.statelessWithApplicationScope.StatelessWithApplicationScopeTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.statelessWithConversationScope.StatelessWithConversationScopeTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.statelessWithRequestScope.StatelessWithRequestScopeTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.statelessWithSessionScope.StatelessWithSessionScopeTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanViaXmlTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.initializer.EjbInitializerMethodTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.producer.field.definition.enterprise.EnterpriseProducerFieldDefinitionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.producer.method.broken.enterprise.nonbusiness.ProducerMethodNotBusinessMethodTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsNothing.DirectlyExtendsNothingTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsSimpleBean.DirectlyExtendsSimpleBeanTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.implementInterfaceAndExtendsNothing.ImplementsInterfaceAndExtendsNothingTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.sameName.SameNameTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.extendejb.SpecializingBeanExtendsEnterpriseBeanTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.interceptorOrder.SessionBeanInterceptorOrderTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.simpleInterception.SessionBeanInterceptorDefinitionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.EnterpriseResolutionByTypeTest"/>
+      <!--
+  NewEnterpriseBeanTest>AbstractTest.run:244->testNewBeanHasNoObservers:95 null
+  EnvInjectionTest>AbstractTest.run:244->testProduceEnvProxy:69 » NullPointer
+
+-->
+      <class 
name="org.jboss.jsr299.tck.tests.implementation.simple.resource.env.EnvInjectionTest"/>
+      <!--
+      <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest">
+        <methods>
+          <include name="testNewBeanHasNoObservers"/>
+        </methods>
+      </class>
+      -->
     </classes>
   </test>
 </suite>

Modified: 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1477484&r1=1477483&r2=1477484&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
 (original)
+++ 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
 Tue Apr 30 06:42:04 2013
@@ -215,7 +215,7 @@ public class OpenEJBContextConfig extend
         final ContextResource[] foundResources = resources.findResources();
         String[] ids = null;
         if (foundResources != null) {
-            for (ContextResource resource : foundResources) {
+            for (final ContextResource resource : foundResources) {
                 if ("javax.sql.DataSource".equals(resource.getType())) {
                     String jndiName = (String) 
resource.getProperty("mappedName");
                     if (jndiName == null) {

Modified: 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java?rev=1477484&r1=1477483&r2=1477484&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java
 (original)
+++ 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java
 Tue Apr 30 06:42:04 2013
@@ -25,6 +25,7 @@ import javax.naming.CompositeName;
 import javax.naming.NamingException;
 import javax.naming.Reference;
 import javax.naming.spi.ObjectFactory;
+import javax.sql.DataSource;
 
 public class TomcatResourceFactory {
     private static final Logger LOGGER = 
Logger.getInstance(LogCategory.OPENEJB, TomcatResourceFactory.class);
@@ -72,6 +73,8 @@ public class TomcatResourceFactory {
                     // context is null since it can't be used at this moment 
(see TomcatWebAppBuilder lifecycle)
                     return ((ObjectFactory) 
instance).getObjectInstance(reference, new CompositeName(jndiName), null, null);
                 }
+            } else if (reference != null && 
DataSource.class.equals(reference.getClassName())) {
+
             }
         } catch (Exception e) {
             LOGGER.error("Can't create resource " + jndiName, e);

Modified: 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1477484&r1=1477483&r2=1477484&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 (original)
+++ 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 Tue Apr 30 06:42:04 2013
@@ -133,6 +133,7 @@ import javax.servlet.ServletContext;
 import javax.servlet.SessionTrackingMode;
 import javax.servlet.jsp.JspApplicationContext;
 import javax.servlet.jsp.JspFactory;
+import javax.sql.DataSource;
 import javax.transaction.TransactionManager;
 import javax.transaction.TransactionSynchronizationRegistry;
 import java.io.File;
@@ -150,6 +151,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 import java.util.TreeMap;
 import java.util.jar.JarEntry;
@@ -1028,15 +1030,50 @@ public class TomcatWebAppBuilder impleme
                     }
 
                     if (!found) {
-                        final Resource newResource = new Resource(name, 
resource.getType(), "org.apache.tomee:ProvidedByTomcat");
-                        newResource.getProperties().setProperty("jndiName", 
newResource.getId());
-                        newResource.getProperties().setProperty("appName", 
getId(standardContext));
-                        newResource.getProperties().setProperty("factory", 
(String) resource.getProperty("factory"));
-
-                        final Reference reference = createReference(resource);
-                        if (reference != null) {
-                            newResource.getProperties().put("reference", 
reference);
+                        final Resource newResource;
+
+                        if 
(DataSource.class.getName().equals(resource.getType())) { // we forward it to 
TomEE datasources
+                            newResource = new Resource(name, 
resource.getType());
+
+                            boolean jta = false;
+
+                            final Properties properties = 
newResource.getProperties();
+                            final Iterator<String> params = 
resource.listProperties();
+                            while (params.hasNext()) {
+                                final String paramName = params.next();
+                                final String paramValue = (String) 
resource.getProperty(paramName);
+
+                                // handling some param name conversion to 
OpenEJB style
+                                if ("driverClassName".equals(paramName)) {
+                                    properties.setProperty("JdbcDriver", 
paramValue);
+                                } else if ("url".equals(paramName)) {
+                                    properties.setProperty("JdbcUrl", 
paramValue);
+                                } else {
+                                    properties.setProperty(paramName, 
paramValue);
+                                }
+
+                                if ("JtaManaged".equalsIgnoreCase(paramName)) {
+                                    jta = Boolean.parseBoolean(paramValue);
+                                }
+                            }
+
+                            if (!jta) {
+                                properties.setProperty("JtaManaged", "false");
+                            }
+                        } else { // custom type, let it be created
+                            newResource = new Resource(name, 
resource.getType(), "org.apache.tomee:ProvidedByTomcat");
+
+                            final Properties properties = 
newResource.getProperties();
+                            properties.setProperty("jndiName", 
newResource.getId());
+                            properties.setProperty("appName", 
getId(standardContext));
+                            properties.setProperty("factory", (String) 
resource.getProperty("factory"));
+
+                            final Reference reference = 
createReference(resource);
+                            if (reference != null) {
+                                properties.put("reference", reference);
+                            }
                         }
+
                         appModule.getResources().add(newResource);
                     }
                 }

Modified: 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/TomEEDataSourceRealm.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/TomEEDataSourceRealm.java?rev=1477484&r1=1477483&r2=1477484&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/TomEEDataSourceRealm.java
 (original)
+++ 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/TomEEDataSourceRealm.java
 Tue Apr 30 06:42:04 2013
@@ -18,19 +18,28 @@ package org.apache.tomee.catalina.realm;
 
 import org.apache.catalina.realm.DataSourceRealm;
 import org.apache.naming.ContextBindings;
+import org.apache.openejb.config.AutoConfig;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.loader.SystemInstance;
 
 import javax.naming.Context;
 import javax.naming.NamingException;
 import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.SQLException;
+import java.util.Collection;
+import java.util.Properties;
 
 public class TomEEDataSourceRealm extends DataSourceRealm {
+    private String fullName = null;
+
     @Override
     protected Connection open() {
         try { // parent behavior
             final Context context;
-            if (localDataSource) {
+            if (fullName != null) {
+                context = ContextBindings.getClassLoader();
+            } else if (localDataSource) {
                 context = 
Context.class.cast(ContextBindings.getClassLoader().lookup("comp/env"));
             } else {
                 context = getServer().getGlobalNamingContext();
@@ -43,20 +52,31 @@ public class TomEEDataSourceRealm extend
                 try { // try globally but with custom subspace
                     return getConnection("java:openejb/Resource/" + 
dataSourceName);
                 } catch (final Exception e3) {
-                    
containerLog.error(sm.getString("dataSourceRealm.exception"), e);
+                    final Collection<String> ids = 
SystemInstance.get().getComponent(ConfigurationFactory.class).getResourceIds(DataSource.class.getName(),
 new Properties());
+                    final String id = AutoConfig.findResourceId(ids, 
dataSourceName);
+
+                    if (id != null) {
+                        try { // try globally but with custom subspace
+                            return getConnection("java:openejb/Resource/" + 
id);
+                        } catch (final Exception e4) {
+                            
containerLog.error(sm.getString("dataSourceRealm.exception"), e);
+                        }
+                    } else {
+                        
containerLog.error(sm.getString("dataSourceRealm.exception"), e);
+                    }
                 }
             } catch (final Exception e2) {
-                // Log the problem for posterity
                 containerLog.error(sm.getString("dataSourceRealm.exception"), 
e);
             }
         } catch (final Exception e) {
-            // Log the problem for posterity
             containerLog.error(sm.getString("dataSourceRealm.exception"), e);
         }
         return null;
     }
 
-    private static Connection getConnection(final String name) throws 
SQLException, NamingException {
-        return 
DataSource.class.cast(Context.class.cast(ContextBindings.getClassLoader()).lookup(name)).getConnection();
+    private Connection getConnection(final String name) throws SQLException, 
NamingException {
+        final Connection c = 
DataSource.class.cast(Context.class.cast(ContextBindings.getClassLoader()).lookup(name)).getConnection();
+        fullName = name; // if here, the default name needed to be changed to 
match requested resource so update it for next calls
+        return c;
     }
 }


Reply via email to