diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionInfoCache.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionInfoCache.cs index 77f002e558..ffe3fab250 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionInfoCache.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionInfoCache.cs @@ -54,10 +54,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid public void Cache(GridRegion rinfo) { if (rinfo != null) - this.Cache(rinfo.ScopeID,rinfo.RegionID,rinfo); + this.Cache(rinfo.ScopeID, rinfo); } - public void Cache(UUID scopeID, UUID regionID, GridRegion rinfo) + public void Cache(UUID scopeID, GridRegion rinfo) { // for now, do not cache negative results; this is because // we need to figure out how to handle regions coming online @@ -68,7 +68,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid m_Cache.AddOrUpdate(scopeID, rinfo, CACHE_EXPIRATION_SECONDS); } - public void Cache(UUID scopeID, UUID regionID, GridRegion rinfo, float expireSeconds) + public void Cache(UUID scopeID, GridRegion rinfo, float expireSeconds) { // for now, do not cache negative results; this is because // we need to figure out how to handle regions coming online diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs index 1e1e8f8a7f..6575cfd27a 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs @@ -183,7 +183,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid if (rinfo == null) rinfo = m_RemoteGridService.GetRegionByUUID(scopeID, regionID); - m_RegionInfoCache.Cache(scopeID,regionID,rinfo); + m_RegionInfoCache.Cache(scopeID, rinfo); return rinfo; } @@ -210,7 +210,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid if (rinfo == null) rinfo = m_RemoteGridService.GetRegionByPosition(scopeID, x, y); - m_RegionInfoCache.Cache(rinfo); + if (rinfo == null) { @@ -219,16 +219,19 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid m_log.WarnFormat("[REMOTE GRID CONNECTOR]: Requested region {0}-{1} not found", regionX, regionY); } else + { + m_RegionInfoCache.Cache(scopeID, rinfo); + m_log.DebugFormat("[REMOTE GRID CONNECTOR]: GetRegionByPosition. Added region {0} to the cache. Pos=<{1},{2}>, RegionHandle={3}", rinfo.RegionName, rinfo.RegionCoordX, rinfo.RegionCoordY, (rinfo == null) ? regionHandle : rinfo.RegionHandle); - + } return rinfo; } public GridRegion GetRegionByName(UUID scopeID, string regionName) { bool inCache = false; - GridRegion rinfo = m_RegionInfoCache.Get(scopeID,regionName, out inCache); + GridRegion rinfo = m_RegionInfoCache.Get(scopeID, regionName, out inCache); if (inCache) return rinfo; @@ -237,7 +240,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid rinfo = m_RemoteGridService.GetRegionByName(scopeID, regionName); // can't cache negative results for name lookups - m_RegionInfoCache.Cache(rinfo); + m_RegionInfoCache.Cache(scopeID, rinfo); return rinfo; }