-Dropped Javolution.

-Removal of Q00344_1000YearsTheEndOfLamentation.
-Fixed starting conditions for Q00144_PailakaInjuredDragon.
-Fixed starting conditions for last Seven Sign quests.
-Added missing MonasteryOfSilence.xml instance spawns and doors.
-Removed many catacomb spawns.
This commit is contained in:
mobius
2015-02-08 21:01:32 +00:00
parent 141cdc5efa
commit 012eb3ed65
201 changed files with 817 additions and 1458 deletions

View File

@@ -22,19 +22,11 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Map;
import java.util.Map.Entry;
import java.util.StringTokenizer;
import javolution.util.FastComparator;
import javolution.util.FastTable;
import com.l2jserver.gameserver.GameTimeController;
import com.l2jserver.gameserver.LoginServerThread;
import com.l2jserver.gameserver.ThreadPoolManager;
@@ -202,76 +194,6 @@ public class DebugHandler implements ITelnetHandler
sb.append('\n');
}
sb.append('\n');
sb.append("## Threads Information ##\n");
Map<Thread, StackTraceElement[]> allThread = Thread.getAllStackTraces();
FastTable<Entry<Thread, StackTraceElement[]>> entries = new FastTable<>();
entries.setValueComparator(new FastComparator<Entry<Thread, StackTraceElement[]>>()
{
private static final long serialVersionUID = 1L;
@Override
public boolean areEqual(Entry<Thread, StackTraceElement[]> e1, Entry<Thread, StackTraceElement[]> e2)
{
return e1.getKey().getName().equals(e2.getKey().getName());
}
@Override
public int compare(Entry<Thread, StackTraceElement[]> e1, Entry<Thread, StackTraceElement[]> e2)
{
return e1.getKey().getName().compareTo(e2.getKey().getName());
}
@Override
public int hashCodeOf(Entry<Thread, StackTraceElement[]> e)
{
return e.hashCode();
}
});
entries.addAll(allThread.entrySet());
entries.sort();
for (Entry<Thread, StackTraceElement[]> entry : entries)
{
StackTraceElement[] stes = entry.getValue();
Thread t = entry.getKey();
sb.append("--------------\n");
sb.append(t.toString() + " (" + t.getId() + ")\n");
sb.append("State: " + t.getState() + '\n');
sb.append("isAlive: " + t.isAlive() + " | isDaemon: " + t.isDaemon() + " | isInterrupted: " + t.isInterrupted() + '\n');
sb.append('\n');
for (StackTraceElement ste : stes)
{
sb.append(ste.toString());
sb.append('\n');
}
sb.append('\n');
}
sb.append('\n');
ThreadMXBean mbean = ManagementFactory.getThreadMXBean();
long[] ids = findDeadlockedThreads(mbean);
if ((ids != null) && (ids.length > 0))
{
Thread[] threads = new Thread[ids.length];
for (int i = 0; i < threads.length; i++)
{
threads[i] = findMatchingThread(mbean.getThreadInfo(ids[i]));
}
sb.append("Deadlocked Threads:\n");
sb.append("-------------------\n");
for (Thread thread : threads)
{
System.err.println(thread);
for (StackTraceElement ste : thread.getStackTrace())
{
sb.append("\t" + ste);
sb.append('\n');
}
}
}
sb.append("\n\n## Thread Pool Manager Statistics ##\n");
for (String line : ThreadPoolManager.getInstance().getStats())
{
@@ -330,29 +252,6 @@ public class DebugHandler implements ITelnetHandler
return false;
}
private long[] findDeadlockedThreads(ThreadMXBean mbean)
{
// JDK 1.5 only supports the findMonitorDeadlockedThreads()
// method, so you need to comment out the following three lines
if (mbean.isSynchronizerUsageSupported())
{
return mbean.findDeadlockedThreads();
}
return mbean.findMonitorDeadlockedThreads();
}
private Thread findMatchingThread(ThreadInfo inf)
{
for (Thread thread : Thread.getAllStackTraces().keySet())
{
if (thread.getId() == inf.getThreadId())
{
return thread;
}
}
throw new IllegalStateException("Deadlocked Thread not found");
}
public String getServerStatus()
{
int playerCount = 0, objectCount = 0;