SimClient: Added Try/Catch over block of code which is triggering an exception that should not be triggerable. (Duplicate key after dictionary is locked, checked for key, then added) [!?!?]
AvatarUpdate: Added check for if the physics actor is null before attempting to access it.0.1-prestable
parent
60047aa5a6
commit
869b39c451
|
@ -730,9 +730,19 @@ namespace OpenSim
|
||||||
lock (NeedAck)
|
lock (NeedAck)
|
||||||
{
|
{
|
||||||
if (!NeedAck.ContainsKey(Pack.Header.Sequence))
|
if (!NeedAck.ContainsKey(Pack.Header.Sequence))
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
NeedAck.Add(Pack.Header.Sequence, Pack);
|
NeedAck.Add(Pack.Header.Sequence, Pack);
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
// Ignore
|
||||||
|
// Seems to throw a exception here occasionally
|
||||||
|
// of 'duplicate key' despite being locked.
|
||||||
|
// !?!?!?
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Client.Log("Attempted to add a duplicate sequence number (" +
|
// Client.Log("Attempted to add a duplicate sequence number (" +
|
||||||
|
|
|
@ -10,6 +10,12 @@ namespace OpenSim.world
|
||||||
{
|
{
|
||||||
public override void update()
|
public override void update()
|
||||||
{
|
{
|
||||||
|
if (this._physActor == null)
|
||||||
|
{
|
||||||
|
//HACKHACK: Note to work out why this entity does not have a physics actor
|
||||||
|
// and prehaps create one.
|
||||||
|
return;
|
||||||
|
}
|
||||||
libsecondlife.LLVector3 pos2 = new LLVector3(this._physActor.Position.X, this._physActor.Position.Y, this._physActor.Position.Z);
|
libsecondlife.LLVector3 pos2 = new LLVector3(this._physActor.Position.X, this._physActor.Position.Y, this._physActor.Position.Z);
|
||||||
if (this.updateflag)
|
if (this.updateflag)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue