diff --git a/OpenSim.RegionServer/SimClient.cs b/OpenSim.RegionServer/SimClient.cs index d716bd6cc2..4b4132e265 100644 --- a/OpenSim.RegionServer/SimClient.cs +++ b/OpenSim.RegionServer/SimClient.cs @@ -735,8 +735,9 @@ namespace OpenSim { NeedAck.Add(Pack.Header.Sequence, Pack); } - catch (Exception e) + catch (Exception e) // HACKY { + e.ToString(); // Ignore // Seems to throw a exception here occasionally // of 'duplicate key' despite being locked. diff --git a/OpenSim.RegionServer/world/Primitive.cs b/OpenSim.RegionServer/world/Primitive.cs index 8ff66f90ab..6fb5d727b6 100644 --- a/OpenSim.RegionServer/world/Primitive.cs +++ b/OpenSim.RegionServer/world/Primitive.cs @@ -52,7 +52,14 @@ namespace OpenSim.world { set { + LLVector3 offset = (value - primData.Scale); + offset.X /= 2; + offset.Y /= 2; + offset.Z /= 2; + + this.primData.Position += offset; this.primData.Scale = value; + this.dirtyFlag = true; } get diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs index 0291467fe2..b0392a6473 100644 --- a/OpenSim.RegionServer/world/World.cs +++ b/OpenSim.RegionServer/world/World.cs @@ -41,7 +41,7 @@ namespace OpenSim.world private string m_regionName; private InventoryCache _inventoryCache; private AssetCache _assetCache; - private int updateLock; + private Object updateLock; /// /// Creates a new World class, and a region to go with it. @@ -53,7 +53,7 @@ namespace OpenSim.world { try { - updateLock = 0; + updateLock = null; m_clientThreads = clientThreads; m_regionHandle = regionHandle; m_regionName = regionName;