diff options
Diffstat (limited to 'OpenSim.RegionServer')
-rw-r--r-- | OpenSim.RegionServer/SimClient.cs | 12 | ||||
-rw-r--r-- | OpenSim.RegionServer/world/AvatarUpdate.cs | 6 |
2 files changed, 17 insertions, 1 deletions
diff --git a/OpenSim.RegionServer/SimClient.cs b/OpenSim.RegionServer/SimClient.cs index e4c445b..d716bd6 100644 --- a/OpenSim.RegionServer/SimClient.cs +++ b/OpenSim.RegionServer/SimClient.cs | |||
@@ -731,7 +731,17 @@ namespace OpenSim | |||
731 | { | 731 | { |
732 | if (!NeedAck.ContainsKey(Pack.Header.Sequence)) | 732 | if (!NeedAck.ContainsKey(Pack.Header.Sequence)) |
733 | { | 733 | { |
734 | NeedAck.Add(Pack.Header.Sequence, Pack); | 734 | try |
735 | { | ||
736 | NeedAck.Add(Pack.Header.Sequence, Pack); | ||
737 | } | ||
738 | catch (Exception e) | ||
739 | { | ||
740 | // Ignore | ||
741 | // Seems to throw a exception here occasionally | ||
742 | // of 'duplicate key' despite being locked. | ||
743 | // !?!?!? | ||
744 | } | ||
735 | } | 745 | } |
736 | else | 746 | else |
737 | { | 747 | { |
diff --git a/OpenSim.RegionServer/world/AvatarUpdate.cs b/OpenSim.RegionServer/world/AvatarUpdate.cs index 6c0ace7..34d032c 100644 --- a/OpenSim.RegionServer/world/AvatarUpdate.cs +++ b/OpenSim.RegionServer/world/AvatarUpdate.cs | |||
@@ -10,6 +10,12 @@ namespace OpenSim.world | |||
10 | { | 10 | { |
11 | public override void update() | 11 | public override void update() |
12 | { | 12 | { |
13 | if (this._physActor == null) | ||
14 | { | ||
15 | //HACKHACK: Note to work out why this entity does not have a physics actor | ||
16 | // and prehaps create one. | ||
17 | return; | ||
18 | } | ||
13 | libsecondlife.LLVector3 pos2 = new LLVector3(this._physActor.Position.X, this._physActor.Position.Y, this._physActor.Position.Z); | 19 | libsecondlife.LLVector3 pos2 = new LLVector3(this._physActor.Position.X, this._physActor.Position.Y, this._physActor.Position.Z); |
14 | if (this.updateflag) | 20 | if (this.updateflag) |
15 | { | 21 | { |