[mapguide-commits] r1376 - trunk/MgDev/Server/src/Common/Manager

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Mar 26 13:39:50 EDT 2007


Author: brucedechant
Date: 2007-03-26 13:39:32 -0400 (Mon, 26 Mar 2007)
New Revision: 1376

Modified:
   trunk/MgDev/Server/src/Common/Manager/FdoConnectionManager.cpp
Log:
Fix defect where out of date feature source cache entry was not being removed when it was supposed to.

Modified: trunk/MgDev/Server/src/Common/Manager/FdoConnectionManager.cpp
===================================================================
--- trunk/MgDev/Server/src/Common/Manager/FdoConnectionManager.cpp	2007-03-26 15:29:56 UTC (rev 1375)
+++ trunk/MgDev/Server/src/Common/Manager/FdoConnectionManager.cpp	2007-03-26 17:39:32 UTC (rev 1376)
@@ -416,7 +416,7 @@
                         delete pFdoConnectionCacheEntry;
                         pFdoConnectionCacheEntry = NULL;
 
-                        STRING cacheKey = iter->first;
+                        STRING resourceId = iter->first;
 
                         // Remove any feature service cache entries for this resource
                         MgServiceManager* serviceManager = MgServiceManager::GetInstance();
@@ -424,7 +424,7 @@
 
                         try
                         {
-                            Ptr<MgResourceIdentifier> resource = new MgResourceIdentifier(cacheKey);
+                            Ptr<MgResourceIdentifier> resource = new MgResourceIdentifier(resourceId);
                             serviceManager->RemoveFeatureServiceCacheEntry(resource);
                         }
                         catch(MgInvalidRepositoryTypeException* e)
@@ -434,6 +434,19 @@
                             SAFE_RELEASE(e);
                         }
 
+                        // Remove Feature Source cache entry
+                        FeatureSourceCache::iterator iterFeatureSource = m_FeatureSourceCache.find(resourceId);
+                        if(m_FeatureSourceCache.end() != iterFeatureSource)
+                        {
+                            MdfModel::FeatureSource* featureSource = iterFeatureSource->second;
+                            if(featureSource)
+                            {
+                                delete featureSource;
+                            }
+
+                            m_FeatureSourceCache.erase(iterFeatureSource);
+                        }
+
                         fdoConnectionCache->erase(iter++);
 
                         ACE_DEBUG ((LM_DEBUG, ACE_TEXT("MgFdoConnectionManager.RemoveExpiredConnections() - Found expired cached FDO connection.\n")));
@@ -1029,6 +1042,19 @@
                                 SAFE_RELEASE(e);
                             }
 
+                            // Remove Feature Source cache entry
+                            FeatureSourceCache::iterator iterFeatureSource = m_FeatureSourceCache.find(key);
+                            if(m_FeatureSourceCache.end() != iterFeatureSource)
+                            {
+                                MdfModel::FeatureSource* featureSource = iterFeatureSource->second;
+                                if(featureSource)
+                                {
+                                    delete featureSource;
+                                }
+
+                                m_FeatureSourceCache.erase(iterFeatureSource);
+                            }
+
                             fdoConnectionCache->erase(iter++);
 
                             connectionsRemoved++;



More information about the mapguide-commits mailing list