Is it really working at all? You're showing "Update Complete" which worries me. Your current version should be beyond broken right now, as we've locked down the API and I haven't given you the client with the keys yet.
The fact that you can update scares me, actually.
Anyway, can you please post your log file? It should be at %APPDATA%\MMOI\mmoimgr\log.txt (yes, that is a valid path name -- type it into explorer).
If you are able to reliably reproduce this (that is, it doesn't take you 100 tries to get it to freeze), it may be helpful to get a thread dump. Unfortunately, to get it, you'll need to start the application in a command prompt.
java -jar C:\Path\To\mmoimgr.jar
Once you've done that, you can hit ctrl+break or ctrl+\ to get the thread dump. It should dump out a ton of text to your command prompt like this:
Code:
2009-05-05 13:12:37
Full thread dump Java HotSpot(TM) 64-Bit Server VM (11.3-b02 mixed mode):
"Thread-103" daemon prio=4 tid=0x000000004fd91800 nid=0x78c waiting on condition [0x0000000059e3f000..0x0000000059e3fa90]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000364acb28> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(Unknown Source)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(Unknown Source)
at com.mmoui.wow.manager.InterfaceList.scoreSearchPattern(InterfaceList.java:1158)
at com.mmoui.wow.manager.InterfaceList.getUID(InterfaceList.java:275)
at com.mmoui.wow.manager.Configuration.getInterfaceUID(Configuration.java:183)
at com.mmoui.wow.manager.Addon.getInterfaceUID(Addon.java:570)
at com.mmoui.wow.manager.Addon.getLatestVersion(Addon.java:249)
at com.mmoui.manager.UpdateDispatcher$ModuleUpdateProcess.run(UpdateDispatcher.java:451)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Thread-102" daemon prio=4 tid=0x000000004fd91000 nid=0x748 in Object.wait() [0x0000000059d3f000..0x0000000059d3fa10]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000365323b0> (a com.mmoui.wow.manager.Addon)
at java.lang.Object.wait(Object.java:485)
at com.mmoui.wow.manager.Addon.getInterfaceUID(Addon.java:552)
- locked <0x00000000365323b0> (a com.mmoui.wow.manager.Addon)
at com.mmoui.wow.manager.Addon.getLatestVersion(Addon.java:249)
at com.mmoui.manager.UpdateDispatcher$ModuleUpdateProcess.run(UpdateDispatcher.java:451)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Update Dispatcher" prio=6 tid=0x000000004f85bc00 nid=0x318 in Object.wait() [0x0000000053c0f000..0x0000000053c0f910]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000036426998> (a com.mmoui.manager.UpdateDispatcher)
at java.lang.Object.wait(Object.java:485)
at com.mmoui.manager.UpdateDispatcher.run(UpdateDispatcher.java:222)
- locked <0x0000000036426998> (a com.mmoui.manager.UpdateDispatcher)
at java.lang.Thread.run(Unknown Source)
"Interface Prefetcher" prio=6 tid=0x000000004f85b000 nid=0xcd0 in Object.wait() [0x00000000535bf000..0x00000000535bfa10]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000036530b58> (a java.util.LinkedList)
at java.lang.Object.wait(Object.java:485)
at com.mmoui.wow.manager.InterfaceList.run(InterfaceList.java:650)
- locked <0x0000000036530b58> (a java.util.LinkedList)
at java.lang.Thread.run(Unknown Source)
"FelixPackageAdmin" daemon prio=6 tid=0x000000004f85a800 nid=0xd38 in Object.wait() [0x00000000531bf000..0x00000000531bfa90]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000036500c18> (a org.apache.felix.framework.PackageAdminImpl)
at java.lang.Object.wait(Object.java:485)
at org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:322)
- locked <0x0000000036500c18> (a org.apache.felix.framework.PackageAdminImpl)
at java.lang.Thread.run(Unknown Source)
"FelixStartLevel" daemon prio=6 tid=0x000000004af48000 nid=0x978 in Object.wait() [0x00000000530bf000..0x00000000530bf710]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000036451f80> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:485)
at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:246)
- locked <0x0000000036451f80> (a java.util.ArrayList)
at java.lang.Thread.run(Unknown Source)
"FelixDispatchQueue" prio=6 tid=0x000000004af47c00 nid=0x1444 in Object.wait() [0x0000000052fbf000..0x0000000052fbf790]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000000ac91da0> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:485)
at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:794)
- locked <0x000000000ac91da0> (a java.util.ArrayList)
at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:42)
at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:94)
at java.lang.Thread.run(Unknown Source)
"D3D Screen Updater" daemon prio=8 tid=0x000000004af47400 nid=0x1428 in Object.wait() [0x0000000051e0f000..0x0000000051e0f810]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000003658ee28> (a java.lang.Object)
at sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source)
- locked <0x000000003658ee28> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)
"pool-1-thread-1" prio=6 tid=0x000000004af46400 nid=0x99c waiting on condition [0x000000004cd5f000..0x000000004cd5f910]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000036422c18> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
It is going to be very long, so I would suggest you dump it to a text file, such as:
java -jar C:\Path\To\mmoimgr.jar > dump.txt
|