Bladeren bron

Some random little code optimization and possible NPE fixes.

Nik 14 jaren geleden
bovenliggende
commit
d6d26549cb
30 gewijzigde bestanden met toevoegingen van 290 en 206 verwijderingen
  1. 1 1
      L2J_Server_BETA/java/com/l2jserver/accountmanager/SQLAccountManager.java
  2. 5 5
      L2J_Server_BETA/java/com/l2jserver/configurator/ConfigUserInterface.java
  3. 6 11
      L2J_Server_BETA/java/com/l2jserver/configurator/JIPTextField.java
  4. 12 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSignsFestival.java
  5. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetNameTable.java
  6. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/TerritoryWarManager.java
  7. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/games/Lottery.java
  8. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2ContactList.java
  9. 2 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Effect.java
  10. 32 13
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2AuctioneerInstance.java
  11. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  12. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/BlockCheckerEngine.java
  13. 24 16
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Castle.java
  14. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java
  15. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestFriendDel.java
  16. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/ValidatePosition.java
  17. 1 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/communityserver/writepackets/WorldInfo.java
  18. 11 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/script/ScriptPackage.java
  19. 4 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/script/faenor/FaenorScriptEngine.java
  20. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/skills/l2skills/L2SkillChargeDmg.java
  21. 14 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/DecayTaskManager.java
  22. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/TaskManager.java
  23. 2 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/util/FloodProtectorAction.java
  24. 9 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/util/Util.java
  25. 45 40
      L2J_Server_BETA/java/com/l2jserver/log/AccountingFormatter.java
  26. 9 4
      L2J_Server_BETA/java/com/l2jserver/log/AuditFormatter.java
  27. 29 24
      L2J_Server_BETA/java/com/l2jserver/log/DamageFormatter.java
  28. 35 30
      L2J_Server_BETA/java/com/l2jserver/log/EnchantFormatter.java
  29. 19 6
      L2J_Server_BETA/java/com/l2jserver/util/DeadLockDetector.java
  30. 3 3
      L2J_Server_BETA/java/com/l2jserver/util/Point3D.java

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/accountmanager/SQLAccountManager.java

@@ -115,7 +115,7 @@ public class SQLAccountManager
 				// Delete
 				System.out.print("Do you really want to delete this account ? Y/N : ");
 				String yesno = _in.readLine();
-				if (yesno.equalsIgnoreCase("Y"))
+				if (yesno != null && yesno.equalsIgnoreCase("Y"))
 					deleteAccount(_uname.trim());
 				else
 					System.out.println("Deletion cancelled");

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/configurator/ConfigUserInterface.java

@@ -286,25 +286,25 @@ public class ConfigUserInterface extends JFrame implements ActionListener
 			{
 				String[] kv = line.split("=");
 				String key = kv[0].trim();
-				String value = "";
+				StringBuilder value = new StringBuilder();
 				if (kv.length > 1)
 				{
-					value = kv[1].trim();
+					value.append(kv[1].trim());
 				}
 				
 				if (line.indexOf('\\') >= 0)
 				{
 					while ((line = lnr.readLine()) != null && line.indexOf('\\') >= 0)
 					{
-						value += "\r\n"+line;
+						value.append("\r\n"+line);
 					}
-					value += "\r\n"+line;
+					value.append("\r\n"+line);
 				}
 				
 				String comments = commentBuffer.toString();
 				commentBuffer.setLength(0); //reset
 				
-				cf.addConfigProperty(key, parseValue(value), comments);
+				cf.addConfigProperty(key, parseValue(value.toString()), comments);
 			}
 		}
 		getConfigs().add(cf);

+ 6 - 11
L2J_Server_BETA/java/com/l2jserver/configurator/JIPTextField.java

@@ -148,23 +148,18 @@ public class JIPTextField extends JPanel implements FocusListener
 	
 	public String getText()
 	{
-		String str = "";
+		StringBuilder str = new StringBuilder();
 		for (int i = 0; i < 4; i++)
 		{
 			if (_textFields[i].getText().length() == 0)
-			{
-				str += "0";
-			}
+				str.append("0");
 			else
-			{
-				str += _textFields[i].getText();
-			}
+				str.append(_textFields[i].getText());
+			
 			if (i < 3)
-			{
-				str += ".";
-			}
+				str.append(".");
 		}
-		return str;
+		return str.toString();
 	}
 	
 	public void setText(String str)

+ 12 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSignsFestival.java

@@ -977,15 +977,22 @@ public class SevenSignsFestival implements SpawnListener
 			rset.close();
 			statement.close();
 			
-			String query = "SELECT festival_cycle, ";
+			StringBuilder query = new StringBuilder();
+			query.append("SELECT festival_cycle, ");
 			
 			for (int i = 0; i < FESTIVAL_COUNT - 1; i++)
+			{
+				query.append("accumulated_bonus");
+				query.append(String.valueOf(i));
+				query.append(", ");
+			}
 				
-				query += "accumulated_bonus" + String.valueOf(i) + ", ";
-			query += "accumulated_bonus" + String.valueOf(FESTIVAL_COUNT - 1) + " ";
-			query += "FROM seven_signs_status WHERE id=0";
+			query.append("accumulated_bonus");
+			query.append(String.valueOf(FESTIVAL_COUNT - 1));
+			query.append(" ");
+			query.append("FROM seven_signs_status WHERE id=0");
 			
-			statement = con.prepareStatement(query);
+			statement = con.prepareStatement(query.toString());
 			rset = statement.executeQuery();
 			
 			while (rset.next())

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetNameTable.java

@@ -52,14 +52,14 @@ public class PetNameTable
 			PreparedStatement statement = con.prepareStatement("SELECT name FROM pets p, items i WHERE p.item_obj_id = i.object_id AND name=? AND i.item_id IN (?)");
 			statement.setString(1, name);
 			
-			String cond = "";
+			StringBuilder cond = new StringBuilder();
 			for (int it : PetDataTable.getPetItemsByNpc(petNpcId))
 			{
-				if (!cond.isEmpty())
-					cond += ", ";
-				cond += it;
+				if (!cond.toString().isEmpty())
+					cond.append(", ");
+				cond.append(it);
 			}
-			statement.setString(2, cond);
+			statement.setString(2, cond.toString());
 			ResultSet rset = statement.executeQuery();
 			result = rset.next();
 			rset.close();

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/TerritoryWarManager.java

@@ -651,10 +651,10 @@ public class TerritoryWarManager implements Siegable
 		{
 			con = L2DatabaseFactory.getInstance().getConnection();
 			statement = con.prepareStatement("UPDATE territories SET ownedWardIds=? WHERE territoryId=?");
-			String wardList = "";
+			StringBuilder wardList = new StringBuilder();
 			for (int i : ter.getOwnedWardIds())
-				wardList += (i + ";");
-			statement.setString(1, wardList);
+				wardList.append(i + ";");
+			statement.setString(1, wardList.toString());
 			statement.setInt(2, ter.getTerritoryId());
 			statement.execute();
 			statement.close();

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/games/Lottery.java

@@ -330,7 +330,7 @@ public class Lottery
 					{
 						int val = curenchant / 2;
 						
-						if (val != (double) curenchant / 2)
+						if (val != Math.round((double) curenchant / 2))
 							count++;
 						
 						int val2 = curtype2 / 2;
@@ -448,7 +448,7 @@ public class Lottery
 		while (enchant > 0)
 		{
 			int val = enchant / 2;
-			if (val != (double) enchant / 2)
+			if (val != Math.round((double) enchant / 2))
 			{
 				res[id++] = nr;
 			}
@@ -508,7 +508,7 @@ public class Lottery
 				for (int i = 1; i <= 16; i++)
 				{
 					int val = curenchant / 2;
-					if (val != (double) curenchant / 2)
+					if (val != Math.round((double) curenchant / 2))
 						count++;
 					int val2 = curtype2 / 2;
 					if (val2 != (double) curtype2 / 2)

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2ContactList.java

@@ -76,7 +76,7 @@ public class L2ContactList
 			{
 				contactId = rset.getInt(1);
 				contactName = CharNameTable.getInstance().getNameById(contactId);
-				if (contactName == null || contactName == activeChar.getName() || contactId == activeChar.getObjectId())
+				if (contactName == null || contactName.equals(activeChar.getName()) || contactId == activeChar.getObjectId())
 					continue;
 				
 				_contacts.add(contactName);
@@ -105,7 +105,7 @@ public class L2ContactList
 			activeChar.sendPacket(SystemMessageId.NAME_ALREADY_EXIST_ON_CONTACT_LIST);
 			return false;
 		}
-		else if (activeChar.getName() == name)
+		else if (activeChar.getName().equals(name))
 		{
 			activeChar.sendPacket(SystemMessageId.CANNOT_ADD_YOUR_NAME_ON_CONTACT_LIST);
 			return false;

+ 2 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Effect.java

@@ -470,6 +470,7 @@ public abstract class L2Effect
 				}
 				// effects not having count or period should start
 				_startConditionsCorrect = onStart();
+				break;
 			}
 			case ACTING:
 			{
@@ -487,6 +488,7 @@ public abstract class L2Effect
 					}
 				}
 				_state = EffectState.FINISHING;
+				break;
 			}
 			case FINISHING:
 			{

+ 32 - 13
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2AuctioneerInstance.java

@@ -276,13 +276,21 @@ public final class L2AuctioneerInstance extends L2Npc
 				if (Config.DEBUG)
 					_log.warning("cmd list: auction test started");
 				
-				String items = "";
-				items += "<table width=280 border=0><tr>";
+				StringBuilder items = new StringBuilder();
+				items.append("<table width=280 border=0><tr>");
 				for (int j = 1; j <= npage; j++)
-					items+= "<td><center><a action=\"bypass -h npc_"+getObjectId()+"_list "+j+"\"> Page "+j+" </a></center></td>";
+				{
+					items.append("<td><center><a action=\"bypass -h npc_");
+					items.append(getObjectId());
+					items.append("_list ");
+					items.append(j);
+					items.append("\"> Page ");
+					items.append(j);
+					items.append(" </a></center></td>");
+				}
 				
-				items += "</tr></table>" +
-				"<table width=280 border=0>";
+				items.append("</tr></table>");
+				items.append("<table width=280 border=0>");
 				
 				for (Auction a : auctions)
 				{
@@ -299,21 +307,32 @@ public final class L2AuctioneerInstance extends L2Npc
 					else
 						i++;
 					
-					items += "<tr>" +
-					"<td>"+ClanHallManager.getInstance().getClanHallById(a.getItemId()).getLocation()+"</td>" +
-					"<td><a action=\"bypass -h npc_"+getObjectId()+"_bidding "+a.getId()+"\">"+a.getItemName()+"</a></td>" +
-					"<td>"+format.format(a.getEndDate())+"</td>" +
-					"<td>"+a.getStartingBid()+"</td>" +
-					"</tr>";
+					items.append("<tr>");
+					items.append("<td>");
+					items.append(ClanHallManager.getInstance().getClanHallById(a.getItemId()).getLocation());
+					items.append("</td>");
+					items.append("<td><a action=\"bypass -h npc_");
+					items.append(getObjectId());
+					items.append("_bidding ");
+					items.append(a.getId());
+					items.append("\">");
+					items.append(a.getItemName());
+					items.append("</a></td>");
+					items.append("<td>"+format.format(a.getEndDate()));
+					items.append("</td>");
+					items.append("<td>");
+					items.append(a.getStartingBid());
+					items.append("</td>");
+					items.append("</tr>");
 				}
 				
-				items += "</table>";
+				items.append("</table>");
 				String filename = "data/html/auction/AgitAuctionList.htm";
 				
 				NpcHtmlMessage html = new NpcHtmlMessage(1);
 				html.setFile(player.getHtmlPrefix(), filename);
 				html.replace("%AGIT_LINK_BACK%", "bypass -h npc_"+getObjectId()+"_start");
-				html.replace("%itemsField%", items);
+				html.replace("%itemsField%", items.toString());
 				player.sendPacket(html);
 				return;
 			}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -15083,7 +15083,7 @@ public final class L2PcInstance extends L2Playable
 		{
 			if (L2PcInstance.this == null)
 			{
-				stopRecoGiveTask();
+				//stopRecoGiveTask(); why is this here? it will lead to NPE
 				return;
 			}
 			int reco_to_give;

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/BlockCheckerEngine.java

@@ -618,15 +618,15 @@ public final class BlockCheckerEngine
 			FastMap<L2PcInstance, Integer> tempPoints = isRed? _redTeamPoints : _blueTeamPoints;
 			
 			// Main give
-			for(L2PcInstance pc : tempPoints.keySet())
+			for(Entry<L2PcInstance, Integer> points : tempPoints.entrySet())
 			{
-				if(pc == null)
+				if(points.getKey() == null)
 					continue;
 				
-				if(tempPoints.get(pc) >= 10)
-					pc.addItem("Block Checker", 13067, 2, pc, true);
+				if(points.getValue() >= 10)
+					points.getKey().addItem("Block Checker", 13067, 2, points.getKey(), true);
 				else
-					tempPoints.remove(pc);
+					tempPoints.remove(points.getKey());
 			}
 			
 			int first = 0, second = 0;

+ 24 - 16
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Castle.java

@@ -1189,7 +1189,8 @@ public class Castle
 			if (_production != null)
 			{
 				int count = 0;
-				String query = "INSERT INTO castle_manor_production VALUES ";
+				StringBuilder query = new StringBuilder();
+				query.append("INSERT INTO castle_manor_production VALUES ");
 				String values[] = new String[_production.size()];
 				for (SeedProduction s : _production)
 				{
@@ -1198,12 +1199,13 @@ public class Castle
 				}
 				if (values.length > 0)
 				{
-					query += values[0];
+					query.append(values[0]);
 					for (int i = 1; i < values.length; i++)
 					{
-						query += "," + values[i];
+						query.append(",");
+						query.append(values[i]);
 					}
-					statement = con.prepareStatement(query);
+					statement = con.prepareStatement(query.toString());
 					statement.execute();
 					statement.close();
 				}
@@ -1263,7 +1265,8 @@ public class Castle
 			if (prod != null)
 			{
 				int count = 0;
-				String query = "INSERT INTO castle_manor_production VALUES ";
+				StringBuilder query = new StringBuilder();
+				query.append("INSERT INTO castle_manor_production VALUES ");
 				String values[] = new String[prod.size()];
 				for (SeedProduction s : prod)
 				{
@@ -1272,12 +1275,13 @@ public class Castle
 				}
 				if (values.length > 0)
 				{
-					query += values[0];
+					query.append(values[0]);
 					for (int i = 1; i < values.length; i++)
 					{
-						query += "," + values[i];
+						query.append(",")
+						.append(values[i]);
 					}
-					statement = con.prepareStatement(query);
+					statement = con.prepareStatement(query.toString());
 					statement.execute();
 					statement.close();
 				}
@@ -1309,7 +1313,8 @@ public class Castle
 			if (_procure != null && _procure.size() > 0)
 			{
 				int count = 0;
-				String query = "INSERT INTO castle_manor_procure VALUES ";
+				StringBuilder query = new StringBuilder();
+				query.append("INSERT INTO castle_manor_procure VALUES ");
 				String values[] = new String[_procure.size()];
 				for (CropProcure cp : _procure)
 				{
@@ -1318,12 +1323,13 @@ public class Castle
 				}
 				if (values.length > 0)
 				{
-					query += values[0];
+					query.append(values[0]);
 					for (int i = 1; i < values.length; i++)
 					{
-						query += "," + values[i];
+						query.append(",");
+						query.append(values[i]);
 					}
-					statement = con.prepareStatement(query);
+					statement = con.prepareStatement(query.toString());
 					statement.execute();
 					statement.close();
 				}
@@ -1382,7 +1388,8 @@ public class Castle
 			if (proc != null && proc.size() > 0)
 			{
 				int count = 0;
-				String query = "INSERT INTO castle_manor_procure VALUES ";
+				StringBuilder query = new StringBuilder();
+				query.append("INSERT INTO castle_manor_procure VALUES ");
 				String values[] = new String[proc.size()];
 				
 				for (CropProcure cp : proc)
@@ -1392,12 +1399,13 @@ public class Castle
 				}
 				if (values.length > 0)
 				{
-					query += values[0];
+					query.append(values[0]);
 					for (int i = 1; i < values.length; i++)
 					{
-						query += "," + values[i];
+						query.append(",");
+						query.append(values[i]);
 					}
-					statement = con.prepareStatement(query);
+					statement = con.prepareStatement(query.toString());
 					statement.execute();
 					statement.close();
 				}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java

@@ -827,7 +827,7 @@ public abstract class Inventory extends ItemContainer
 	 * Returns the item in the paperdoll slot
 	 * @return L2ItemInstance
 	 */
-	public L2ItemInstance getPaperdollItem(int slot)
+	public synchronized L2ItemInstance getPaperdollItem(int slot)
 	{
 		return _paperdoll[slot];
 	}
@@ -905,7 +905,7 @@ public abstract class Inventory extends ItemContainer
 	 * @param slot : int designating the slot
 	 * @return int designating the ID of the item
 	 */
-	public int getPaperdollItemId(int slot)
+	public synchronized int getPaperdollItemId(int slot)
 	{
 		L2ItemInstance item = _paperdoll[slot];
 		if (item != null)
@@ -913,7 +913,7 @@ public abstract class Inventory extends ItemContainer
 		return 0;
 	}
 	
-	public int getPaperdollAugmentationId(int slot)
+	public synchronized int getPaperdollAugmentationId(int slot)
 	{
 		L2ItemInstance item = _paperdoll[slot];
 		if (item != null)
@@ -931,7 +931,7 @@ public abstract class Inventory extends ItemContainer
 	 * @param slot : int pointing out the slot
 	 * @return int designating the objectID
 	 */
-	public int getPaperdollObjectId(int slot)
+	public synchronized int getPaperdollObjectId(int slot)
 	{
 		L2ItemInstance item = _paperdoll[slot];
 		if (item != null)

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestFriendDel.java

@@ -91,7 +91,7 @@ public final class RequestFriendDel extends L2GameClientPacket{
 			sm.addString(_name);
 			activeChar.sendPacket(sm);
 			
-			activeChar.getFriendList().remove(new Integer(id));
+			activeChar.getFriendList().remove(Integer.valueOf(id));
 			activeChar.sendPacket(new FriendPacket(false, id));
 			
 			L2PcInstance player = L2World.getInstance().getPlayer(_name);

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/ValidatePosition.java

@@ -88,7 +88,7 @@ public class ValidatePosition extends L2GameClientPacket
 			{
 				dx = _x - activeChar.getInVehiclePosition().getX();
 				dy = _y - activeChar.getInVehiclePosition().getY();
-				dz = _z - activeChar.getInVehiclePosition().getZ();
+				//dz = _z - activeChar.getInVehiclePosition().getZ();
 				diffSq = (dx*dx + dy*dy);
 				if (diffSq > 250000)
 					sendPacket(new GetOnVehicle(activeChar.getObjectId(), _data, activeChar.getInVehiclePosition()));

+ 1 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/network/communityserver/writepackets/WorldInfo.java

@@ -48,6 +48,7 @@ public final class WorldInfo extends BaseWritePacket
 			{
 				// this should never happen
 				super.writeC(0x00);
+				break;
 			}
 			
 			case TYPE_UPDATE_PLAYER_DATA:

+ 11 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/script/ScriptPackage.java

@@ -95,25 +95,30 @@ public class ScriptPackage
 		if (getScriptFiles().isEmpty() && getOtherFiles().isEmpty())
 			return "Empty Package.";
 		
-		String out = "Package Name: "+getName()+"\n";
+		StringBuilder out = new StringBuilder();
+		out.append("Package Name: ");
+		out.append(getName());
+		out.append("\n");
 		
 		if (!getScriptFiles().isEmpty())
 		{
-			out += "Xml Script Files...\n";
+			out.append("Xml Script Files...\n");
 			for (ScriptDocument script : getScriptFiles())
 			{
-				out += script.getName()+"\n";
+				out.append(script.getName());
+				out.append("\n");
 			}
 		}
 		
 		if (!getOtherFiles().isEmpty())
 		{
-			out += "Other Files...\n";
+			out.append("Other Files...\n");
 			for (String fileName : getOtherFiles())
 			{
-				out += fileName+"\n";
+				out.append(fileName);
+				out.append("\n");
 			}
 		}
-		return out;
+		return out.toString();
 	}
 }

+ 4 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/script/faenor/FaenorScriptEngine.java

@@ -212,13 +212,14 @@ public class FaenorScriptEngine extends ScriptEngine
 		if (_scripts.isEmpty())
 			return "No Packages Loaded.";
 		
-		String out = "Script Packages currently loaded:\n";
+		StringBuilder out = new StringBuilder();
+		out.append("Script Packages currently loaded:\n");
 		
 		for (ScriptDocument script : _scripts)
 		{
-			out += script;
+			out.append(script);
 		}
-		return out;
+		return out.toString();
 	}
 	
 	@SuppressWarnings("synthetic-access")

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/skills/l2skills/L2SkillChargeDmg.java

@@ -166,7 +166,7 @@ public class L2SkillChargeDmg extends L2Skill
 						caster.sendPacket(sm);
 					}
 					// Formula from Diego post, 700 from rpg tests
-					double vegdamage = (700 * target.getPAtk(caster) / caster.getPDef(target));
+					double vegdamage = (700 * target.getPAtk(caster) / (double)caster.getPDef(target));
 					caster.reduceCurrentHp(vegdamage, target, this);
 				}
 				

+ 14 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/DecayTaskManager.java

@@ -117,18 +117,26 @@ public class DecayTaskManager
 	@Override
 	public String toString()
 	{
-		String ret = "============= DecayTask Manager Report ============\r\n";
-		ret += "Tasks count: " + _decayTasks.size() + "\r\n";
-		ret += "Tasks dump:\r\n";
+		StringBuilder ret = new StringBuilder();
+		ret.append("============= DecayTask Manager Report ============\r\n");
+		ret.append("Tasks count: ");
+		ret.append(_decayTasks.size());
+		ret.append("\r\n");
+		ret.append("Tasks dump:\r\n");
 		
 		Long current = System.currentTimeMillis();
 		for (L2Character actor : _decayTasks.keySet())
 		{
-			ret += "Class/Name: " + actor.getClass().getSimpleName() + "/" + actor.getName() + " decay timer: "
-			+ (current - _decayTasks.get(actor)) + "\r\n";
+			ret.append("Class/Name: ");
+			ret.append(actor.getClass().getSimpleName());
+			ret.append("/");
+			ret.append(actor.getName());
+			ret.append(" decay timer: ");
+			ret.append(current - _decayTasks.get(actor));
+			ret.append("\r\n");
 		}
 		
-		return ret;
+		return ret.toString();
 	}
 	
 	/**

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/TaskManager.java

@@ -116,7 +116,7 @@ public final class TaskManager
 		@Override
 		public boolean equals(Object object)
 		{
-			return id == ((ExecutedTask) object).id;
+			return object == null ? false : id == ((ExecutedTask) object).id;
 		}
 		
 		public Task getTask()

+ 2 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/util/FloodProtectorAction.java

@@ -209,9 +209,11 @@ public final class FloodProtectorAction
 					StringUtil.append(output, _client.getActiveChar().getName());
 					StringUtil.append(output, "(", String.valueOf(_client.getActiveChar().getObjectId()),") ");
 				}
+				break;
 			case AUTHED:
 				if (_client.getAccountName() != null)
 					StringUtil.append(output, _client.getAccountName()," ");
+				break;
 			case CONNECTED:
 				if (address != null)
 					StringUtil.append(output, address);

+ 9 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/util/Util.java

@@ -165,7 +165,7 @@ public final class Util
 	public static String capitalizeWords(String str)
 	{
 		char[] charArray = str.toCharArray();
-		String result = "";
+		StringBuilder result = new StringBuilder();
 		
 		// Capitalize the first letter in the given string!
 		charArray[0] = Character.toUpperCase(charArray[0]);
@@ -175,10 +175,10 @@ public final class Util
 			if (Character.isWhitespace(charArray[i]))
 				charArray[i + 1] = Character.toUpperCase(charArray[i + 1]);
 			
-			result += Character.toString(charArray[i]);
+			result.append(charArray[i]);
 		}
 		
-		return result;
+		return result.toString();
 	}
 	
 	/**
@@ -261,12 +261,15 @@ public final class Util
 	 */
 	public static String implodeString(String[] strArray, String strDelim)
 	{
-		String result = "";
+		StringBuilder result = new StringBuilder();
 		
 		for (String strValue : strArray)
-			result += strValue + strDelim;
+		{
+			result.append(strValue);
+			result.append(strDelim);
+		}
 		
-		return result;
+		return result.toString();
 	}
 	
 	/**

+ 45 - 40
L2J_Server_BETA/java/com/l2jserver/log/AccountingFormatter.java

@@ -35,54 +35,59 @@ public class AccountingFormatter extends Formatter
 		final StringBuilder output = StringUtil.startAppend(30
 				+ record.getMessage().length()
 				+ (params == null ? 0 : params.length * 10), "[", dateFmt.format(new Date(record.getMillis())), "] ", record.getMessage());
-		for (Object p : params)
+		
+		if (params != null)
 		{
-			if (p == null)
-				continue;
-			
-			StringUtil.append(output, ", ");
-			
-			if (p instanceof L2GameClient)
+			for (Object p : params)
 			{
-				final L2GameClient client = (L2GameClient)p;
-				String address = null;
-				try
-				{
-					if (!client.isDetached())
-						address = client.getConnection().getInetAddress().getHostAddress();
-				}
-				catch (Exception e)
+				if (p == null)
+					continue;
+				
+				StringUtil.append(output, ", ");
+				
+				if (p instanceof L2GameClient)
 				{
+					final L2GameClient client = (L2GameClient)p;
+					String address = null;
+					try
+					{
+						if (!client.isDetached())
+							address = client.getConnection().getInetAddress().getHostAddress();
+					}
+					catch (Exception e)
+					{
+					}
+					
+					switch (client.getState())
+					{
+						case IN_GAME:
+							if (client.getActiveChar() != null)
+							{
+								StringUtil.append(output, client.getActiveChar().getName());
+								StringUtil.append(output, "(", String.valueOf(client.getActiveChar().getObjectId()),") ");
+							}
+						case AUTHED:
+							if (client.getAccountName() != null)
+								StringUtil.append(output, client.getAccountName()," ");
+						case CONNECTED:
+							if (address != null)
+								StringUtil.append(output, address);
+							break;
+						default:
+							throw new IllegalStateException("Missing state on switch");
+					}
 				}
-				
-				switch (client.getState())
+				else if (p instanceof L2PcInstance)
 				{
-					case IN_GAME:
-						if (client.getActiveChar() != null)
-						{
-							StringUtil.append(output, client.getActiveChar().getName());
-							StringUtil.append(output, "(", String.valueOf(client.getActiveChar().getObjectId()),") ");
-						}
-					case AUTHED:
-						if (client.getAccountName() != null)
-							StringUtil.append(output, client.getAccountName()," ");
-					case CONNECTED:
-						if (address != null)
-							StringUtil.append(output, address);
-						break;
-					default:
-						throw new IllegalStateException("Missing state on switch");
+					L2PcInstance player = (L2PcInstance)p;
+					StringUtil.append(output, player.getName());
+					StringUtil.append(output, "(", String.valueOf(player.getObjectId()),")");
 				}
+				else
+					StringUtil.append(output, p.toString());
 			}
-			else if (p instanceof L2PcInstance)
-			{
-				L2PcInstance player = (L2PcInstance)p;
-				StringUtil.append(output, player.getName());
-				StringUtil.append(output, "(", String.valueOf(player.getObjectId()),")");
-			}
-			else
-				StringUtil.append(output, p.toString());
 		}
+
 		output.append(CRLF);
 		return output.toString();
 	}

+ 9 - 4
L2J_Server_BETA/java/com/l2jserver/log/AuditFormatter.java

@@ -37,12 +37,17 @@ public class AuditFormatter extends Formatter
 		final StringBuilder output = StringUtil.startAppend(30
 				+ record.getMessage().length()
 				+ (params == null ? 0 : params.length * 10), "[", dateFmt.format(new Date(record.getMillis())), "] ", record.getMessage());
-		for (Object p : params)
+		
+		if (params != null)
 		{
-			if (p == null)
-				continue;
-			StringUtil.append(output, ", ", p.toString());
+			for (Object p : params)
+			{
+				if (p == null)
+					continue;
+				StringUtil.append(output, ", ", p.toString());
+			}
 		}
+		
 		output.append(CRLF);
 		return output.toString();
 	}

+ 29 - 24
L2J_Server_BETA/java/com/l2jserver/log/DamageFormatter.java

@@ -41,37 +41,42 @@ public class DamageFormatter extends Formatter
 				+ (params == null ? 0 : params.length * 10), "[",
 				dateFmt.format(new Date(record.getMillis())), "] '---': ",
 				record.getMessage());
-		for (Object p : params)
+		
+		if (params != null)
 		{
-			if (p == null)
-				continue;
-			
-			if (p instanceof L2Character)
+			for (Object p : params)
 			{
-				if (p instanceof L2Attackable && ((L2Attackable)p).isRaid())
-					StringUtil.append(output, "RaidBoss ");
+				if (p == null)
+					continue;
 				
-				StringUtil.append(output, ((L2Character)p).getName(),
-						"(", String.valueOf(((L2Character)p).getObjectId()), ") ");
-				StringUtil.append(output, String.valueOf(((L2Character)p).getLevel()),
-				" lvl");
-				
-				if (p instanceof L2Summon)
+				if (p instanceof L2Character)
 				{
-					L2PcInstance owner = ((L2Summon)p).getOwner();
-					if (owner != null)
-						StringUtil.append(output, " Owner:", owner.getName(),
-								"(", String.valueOf(owner.getObjectId()), ")");
+					if (p instanceof L2Attackable && ((L2Attackable)p).isRaid())
+						StringUtil.append(output, "RaidBoss ");
+					
+					StringUtil.append(output, ((L2Character)p).getName(),
+							"(", String.valueOf(((L2Character)p).getObjectId()), ") ");
+					StringUtil.append(output, String.valueOf(((L2Character)p).getLevel()),
+					" lvl");
+					
+					if (p instanceof L2Summon)
+					{
+						L2PcInstance owner = ((L2Summon)p).getOwner();
+						if (owner != null)
+							StringUtil.append(output, " Owner:", owner.getName(),
+									"(", String.valueOf(owner.getObjectId()), ")");
+					}
 				}
+				else if (p instanceof L2Skill)
+				{
+					StringUtil.append(output, " with skill ",((L2Skill)p).getName(),
+							"(", String.valueOf(((L2Skill)p).getId()), ")");
+				}
+				else
+					StringUtil.append(output, p.toString());
 			}
-			else if (p instanceof L2Skill)
-			{
-				StringUtil.append(output, " with skill ",((L2Skill)p).getName(),
-						"(", String.valueOf(((L2Skill)p).getId()), ")");
-			}
-			else
-				StringUtil.append(output, p.toString());
 		}
+
 		output.append(CRLF);
 		return output.toString();
 	}

+ 35 - 30
L2J_Server_BETA/java/com/l2jserver/log/EnchantFormatter.java

@@ -37,44 +37,49 @@ public class EnchantFormatter extends Formatter
 		final StringBuilder output = StringUtil.startAppend(30
 				+ record.getMessage().length()
 				+ (params == null ? 0 : params.length * 10), "[", dateFmt.format(new Date(record.getMillis())), "] ", record.getMessage());
-		for (Object p : params)
+		
+		if (params != null)
 		{
-			if (p == null)
-				continue;
-			
-			StringUtil.append(output, ", ");
-			
-			if (p instanceof L2PcInstance)
+			for (Object p : params)
 			{
-				L2PcInstance player = (L2PcInstance)p;
-				StringUtil.append(output, "Character:", player.getName(),
-						" ["+String.valueOf(player.getObjectId())+"] Account:",
-						player.getAccountName());
-				if (player.getClient() != null && !player.getClient().isDetached())
-					StringUtil.append(output, " IP:", player.getClient().getConnection().getInetAddress().getHostAddress());
-			}
-			else if (p instanceof L2ItemInstance)
-			{
-				L2ItemInstance item = (L2ItemInstance)p;
-				if (item.getEnchantLevel() > 0)
+				if (p == null)
+					continue;
+				
+				StringUtil.append(output, ", ");
+				
+				if (p instanceof L2PcInstance)
 				{
-					StringUtil.append(output, "+", String.valueOf(item.getEnchantLevel()), " ");
+					L2PcInstance player = (L2PcInstance)p;
+					StringUtil.append(output, "Character:", player.getName(),
+							" ["+String.valueOf(player.getObjectId())+"] Account:",
+							player.getAccountName());
+					if (player.getClient() != null && !player.getClient().isDetached())
+						StringUtil.append(output, " IP:", player.getClient().getConnection().getInetAddress().getHostAddress());
 				}
-				StringUtil.append(output, item.getItem().getName(), "(", String.valueOf(item.getCount()), ")");
-				StringUtil.append(output, " [", String.valueOf(item.getObjectId()), "]");
-			}
-			else if (p instanceof L2Skill)
-			{
-				L2Skill skill = (L2Skill)p;
-				if (skill.getLevel() > 100)
+				else if (p instanceof L2ItemInstance)
 				{
-					StringUtil.append(output, "+", String.valueOf(skill.getLevel() % 100), " ");
+					L2ItemInstance item = (L2ItemInstance)p;
+					if (item.getEnchantLevel() > 0)
+					{
+						StringUtil.append(output, "+", String.valueOf(item.getEnchantLevel()), " ");
+					}
+					StringUtil.append(output, item.getItem().getName(), "(", String.valueOf(item.getCount()), ")");
+					StringUtil.append(output, " [", String.valueOf(item.getObjectId()), "]");
 				}
-				StringUtil.append(output, skill.getName(), "(", String.valueOf(skill.getId())," ", String.valueOf(skill.getLevel()), ")");
+				else if (p instanceof L2Skill)
+				{
+					L2Skill skill = (L2Skill)p;
+					if (skill.getLevel() > 100)
+					{
+						StringUtil.append(output, "+", String.valueOf(skill.getLevel() % 100), " ");
+					}
+					StringUtil.append(output, skill.getName(), "(", String.valueOf(skill.getId())," ", String.valueOf(skill.getLevel()), ")");
+				}
+				else
+					StringUtil.append(output, p.toString());
 			}
-			else
-				StringUtil.append(output, p.toString());
 		}
+
 		output.append(CRLF);
 		return output.toString();
 	}

+ 19 - 6
L2J_Server_BETA/java/com/l2jserver/util/DeadLockDetector.java

@@ -59,10 +59,11 @@ public class DeadLockDetector extends Thread
 				{
 					deadlock = true;
 					ThreadInfo[] tis = tmx.getThreadInfo(ids,true,true);
-					String info = "DeadLock Found!\n";
+					StringBuilder info = new StringBuilder();
+					info.append("DeadLock Found!\n");
 					for(ThreadInfo ti : tis)
 					{
-						info += ti.toString();
+						info.append(ti.toString());
 					}
 					
 					for(ThreadInfo ti : tis)
@@ -75,14 +76,26 @@ public class DeadLockDetector extends Thread
 						}
 						
 						ThreadInfo dl = ti;
-						info += "Java-level deadlock:\n";
-						info += "\t"+dl.getThreadName()+" is waiting to lock "+dl.getLockInfo().toString()+" which is held by "+dl.getLockOwnerName()+"\n";
+						info.append("Java-level deadlock:\n");
+						info.append("\t");
+						info.append(dl.getThreadName());
+						info.append(" is waiting to lock ");
+						info.append(dl.getLockInfo().toString());
+						info.append(" which is held by ");
+						info.append(dl.getLockOwnerName());
+						info.append("\n");
 						while((dl = tmx.getThreadInfo(new long[]{dl.getLockOwnerId()},true,true)[0]).getThreadId() != ti.getThreadId())
 						{
-							info += "\t"+dl.getThreadName()+" is waiting to lock "+dl.getLockInfo().toString()+" which is held by "+dl.getLockOwnerName()+"\n";
+							info.append("\t");
+							info.append(dl.getThreadName());
+							info.append(" is waiting to lock ");
+							info.append(dl.getLockInfo().toString());
+							info.append(" which is held by ");
+							info.append(dl.getLockOwnerName());
+							info.append("\n");
 						}
 					}
-					_log.warning(info);
+					_log.warning(info.toString());
 					
 					if(Config.RESTART_ON_DEADLOCK)
 					{

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/util/Point3D.java

@@ -141,7 +141,7 @@ public class Point3D implements Serializable
 		return distanceSquared(point1, point2) < distance * distance;
 	}
 	
-	public int getX()
+	public synchronized int getX()
 	{
 		return _x;
 	}
@@ -151,7 +151,7 @@ public class Point3D implements Serializable
 		_x = pX;
 	}
 	
-	public int getY()
+	public synchronized int getY()
 	{
 		return _y;
 	}
@@ -161,7 +161,7 @@ public class Point3D implements Serializable
 		_y = pY;
 	}
 	
-	public int getZ()
+	public synchronized int getZ()
 	{
 		return _z;
 	}