[mapguide-commits] r5370 - trunk/MgDev/Common/Foundation/System
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Thu Nov 4 18:02:19 EDT 2010
Author: brucedechant
Date: 2010-11-04 15:02:19 -0700 (Thu, 04 Nov 2010)
New Revision: 5370
Modified:
trunk/MgDev/Common/Foundation/System/Configuration.cpp
Log:
Ensure that the configuration file is loaded only once from the MgConfiguration object.
Note:
- ACE returns an EBUSY error if the Open() method of ACE_Configuration_Heap is called more than once.
Modified: trunk/MgDev/Common/Foundation/System/Configuration.cpp
===================================================================
--- trunk/MgDev/Common/Foundation/System/Configuration.cpp 2010-11-04 04:47:18 UTC (rev 5369)
+++ trunk/MgDev/Common/Foundation/System/Configuration.cpp 2010-11-04 22:02:19 UTC (rev 5370)
@@ -91,29 +91,33 @@
MG_CONFIGURATION_TRY()
- m_fileLoaded = false;
- m_fileName = fileName;
+ // We need to ensure that the configuration file is loaded only once from this configuration object
+ // ACE returns an EBUSY error if the Open() method of ACE_Configuration_Heap is called more than once.
+ if(!m_fileLoaded)
+ {
+ m_fileName = fileName;
- if(m_config.Open())
- {
- if(m_config.ImportConfig(fileName))
+ if(m_config.Open())
{
- m_fileLoaded = true;
+ if(m_config.ImportConfig(fileName))
+ {
+ m_fileLoaded = true;
+ }
+ else
+ {
+ MgStringCollection arguments;
+ arguments.Add(fileName);
+
+ throw new MgConfigurationLoadFailedException(
+ L"MgConfiguration.LoadConfiguration",
+ __LINE__, __WFILE__, &arguments, L"", NULL);
+ }
}
else
{
- MgStringCollection arguments;
- arguments.Add(fileName);
-
- throw new MgConfigurationLoadFailedException(
- L"MgConfiguration.LoadConfiguration",
- __LINE__, __WFILE__, &arguments, L"", NULL);
+ ACE_ERROR((LM_ERROR, ACE_TEXT("%p\n"), ACE_TEXT("MgConfiguration::LoadConfiguration()")));
}
}
- else
- {
- ACE_ERROR((LM_ERROR, ACE_TEXT("%p\n"), ACE_TEXT("MgConfiguration::LoadConfiguration()")));
- }
MG_CONFIGURATION_CATCH_AND_THROW(L"MgConfiguration.LoadConfiguration")
}
More information about the mapguide-commits
mailing list