-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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user