diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index 58cb9a24f2..7161942c0e 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs @@ -2217,44 +2217,48 @@ namespace OpenSim.Region.ClientStack public virtual void InPacket(Packet NewPack) { // Handle appended ACKs - if (NewPack.Header.AppendedAcks) + if (NewPack != null) { - lock (m_needAck) + if (NewPack.Header.AppendedAcks) { - foreach (uint ack in NewPack.Header.AckList) + lock (m_needAck) { - m_needAck.Remove(ack); + foreach (uint ack in NewPack.Header.AckList) + { + m_needAck.Remove(ack); + } } } - } + - // Handle PacketAck packets - if (NewPack.Type == PacketType.PacketAck) - { - PacketAckPacket ackPacket = (PacketAckPacket) NewPack; - - lock (m_needAck) + // Handle PacketAck packets + if (NewPack.Type == PacketType.PacketAck) { - foreach (PacketAckPacket.PacketsBlock block in ackPacket.Packets) + PacketAckPacket ackPacket = (PacketAckPacket) NewPack; + + lock (m_needAck) { - m_needAck.Remove(block.ID); + foreach (PacketAckPacket.PacketsBlock block in ackPacket.Packets) + { + m_needAck.Remove(block.ID); + } } } - } - else if ((NewPack.Type == PacketType.StartPingCheck)) - { - //reply to pingcheck - StartPingCheckPacket startPing = (StartPingCheckPacket) NewPack; - CompletePingCheckPacket endPing = new CompletePingCheckPacket(); - endPing.PingID.PingID = startPing.PingID.PingID; - OutPacket(endPing, ThrottleOutPacketType.Task); - } - else - { - QueItem item = new QueItem(); - item.Packet = NewPack; - item.Incoming = true; - m_packetQueue.Enqueue(item); + else if ((NewPack.Type == PacketType.StartPingCheck)) + { + //reply to pingcheck + StartPingCheckPacket startPing = (StartPingCheckPacket) NewPack; + CompletePingCheckPacket endPing = new CompletePingCheckPacket(); + endPing.PingID.PingID = startPing.PingID.PingID; + OutPacket(endPing, ThrottleOutPacketType.Task); + } + else + { + QueItem item = new QueItem(); + item.Packet = NewPack; + item.Incoming = true; + m_packetQueue.Enqueue(item); + } } } diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs index 72c449ba2d..310d29b7c5 100644 --- a/OpenSim/Region/Environment/LandManagement/LandManager.cs +++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs @@ -242,6 +242,9 @@ namespace OpenSim.Region.Environment.LandManagement if (x >= 64 || y >= 64 || x < 0 || y < 0) { + // These exceptions here will cause a lot of complaints from the users specifically because + // they happen every time at border crossings + throw new Exception("Error: Parcel not found at point " + x + ", " + y); } else @@ -255,6 +258,8 @@ namespace OpenSim.Region.Environment.LandManagement { if (x >= 256 || y >= 256 || x < 0 || y < 0) { + // These exceptions here will cause a lot of complaints from the users specifically because + // they happen every time at border crossings throw new Exception("Error: Parcel not found at point " + x + ", " + y); } else