User: dsundstrom
  Date: 02/04/12 18:40:31

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc
                        JDBCStoreManager.java
  Log:
  Moved static application data map to an instance variable to in EjbModule.
  
  Should reduce memory leak.
  
  Revision  Changes    Path
  1.33      +19 -13    
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreManager.java
  
  Index: JDBCStoreManager.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreManager.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- JDBCStoreManager.java     12 Apr 2002 21:39:47 -0000      1.32
  +++ JDBCStoreManager.java     13 Apr 2002 01:40:31 -0000      1.33
  @@ -28,6 +28,7 @@
   
   import org.jboss.deployment.DeploymentException;
   import org.jboss.ejb.Container;
  +import org.jboss.ejb.EjbModule;
   import org.jboss.ejb.EntityContainer;
   import org.jboss.ejb.EntityPersistenceStore;
   import org.jboss.ejb.EntityEnterpriseContext;
  @@ -60,7 +61,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
    * @see org.jboss.ejb.EntityPersistenceStore
  - * @version $Revision: 1.32 $
  + * @version $Revision: 1.33 $
    */
   public class JDBCStoreManager implements EntityPersistenceStore
   {
  @@ -70,9 +71,10 @@
       */
      private static final Object TX_DATA_KEY = "TX_DATA_KEY";
      
  -   private static final Map applicationData =
  -   Collections.synchronizedMap(new HashMap());
  +//   private static final Map applicationData =
  +//   Collections.synchronizedMap(new HashMap());
      
  +   private EjbModule ejbModule;
      private EntityContainer container;
      private Logger log;
      
  @@ -135,9 +137,12 @@
         this.container = (EntityContainer) container;
         if( container != null )
         {
  +         ejbModule = container.getEjbModule();
            String categoryName = this.getClass().getName() +
               "." + container.getBeanMetaData().getEjbName();
            this.log = Logger.getLogger(categoryName);
  +      } else {
  +         ejbModule = null;
         }
      }
   
  @@ -176,22 +181,22 @@
      //
      public Map getApplicationDataMap()
      {
  -      return applicationData;
  +      return ejbModule.getModuleDataMap();
      }
      
      public Object getApplicationData(Object key)
      {
  -      return applicationData.get(key);
  +      return ejbModule.getModuleData(key);
      }
      
      public void putApplicationData(Object key, Object value)
      {
  -      applicationData.put(key, value);
  +      ejbModule.putModuleData(key, value);
      }
      
      public void removeApplicationData(Object key)
      {
  -      applicationData.remove(key);
  +      ejbModule.removeModuleData(key);
      }
      
      public Map getApplicationTxDataMap()
  @@ -290,13 +295,14 @@
      
      private void initApplicationDataMap()
      {
  -      synchronized(applicationData)
  +      Map moduleData = ejbModule.getModuleDataMap();
  +      synchronized(moduleData)
         {
  -         Map txDataMap = (Map)getApplicationData(TX_DATA_KEY);
  +         Map txDataMap = (Map)moduleData.get(TX_DATA_KEY);
            if(txDataMap == null)
            {
               txDataMap = new HashMap();
  -            putApplicationData(TX_DATA_KEY, txDataMap);
  +            moduleData.put(TX_DATA_KEY, txDataMap);
            }
         }
      }
  @@ -307,7 +313,7 @@
      public void create() throws Exception
      {
         log.debug("Initializing CMP plugin for " +
  -      container.getBeanMetaData().getEjbName());
  +            container.getBeanMetaData().getEjbName());
         
         // initializes the generic data containers
         initApplicationDataMap();
  @@ -320,8 +326,8 @@
         
         // setup the type factory, which is used to map java types to sql types.
         typeFactory = new JDBCTypeFactory(
  -      metaData.getTypeMapping(),
  -      metaData.getJDBCApplication().getValueClasses());
  +            metaData.getTypeMapping(),
  +            metaData.getJDBCApplication().getValueClasses());
         
         // create the bridge between java land and this engine (sql land)
         entityBridge = new JDBCEntityBridge(metaData, this);
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to