new version of jad decompiler plugin (IdeaJad)

Hi,

I just uploaded a new version of the jad decompiler plugin.
Installation instructions are in the readme.

=> http://www.tagtraum.com/ideajad.html

Enjoy,

-hendrik

Changes:

- Added configuration panel
- Remembers project specific configurations
- Only the files that shall be decompiled are
extracted from jars
- Temporary files are now stored in java.io.tmpdir
and not in the home directory
- Multiple frames are handled correctly
- Added progressbar

0
14 comments

Hendrik,
Nice ONE - great job - congratulations!

The only usability points I can make ...
(compared to the plugin I used in a previous developer life with
JBuilder ;) :

1)
I have a projct with many source roots.
once I have defined the destination for decompiled classes
in the jad plugin panel, I'd like not to be asked again and again for
the destination each time I decompile a new class.

2) Also, I usually do not want my decompiled classes be part of my
'real' sources I have to compile.
So to work well with the plugin - which now requires a destination to
be one of the project sourceroots - I had to define a srcroot that I
exclude from compilation.
Maybe using a temporary root for decompiled files, would be nice ...

thanks!
Edo


Hendrik Schreiber wrote:

Hi,

I just uploaded a new version of the jad decompiler plugin.
Installation instructions are in the readme.

=> http://www.tagtraum.com/ideajad.html

Enjoy,

-hendrik

Changes:

- Added configuration panel
- Remembers project specific configurations
- Only the files that shall be decompiled are
extracted from jars
- Temporary files are now stored in java.io.tmpdir
and not in the home directory
- Multiple frames are handled correctly
- Added progressbar



--
Edoardo Comar
Cape Clear Software
http://www.capeclear.com

Register for our Web Services Seminar tour - "Lowering the Cost of
Business Integration".
See http://www.capeclear.com/seminars for details

0

So what do you think... has Jad come to the end of its life?

Hendrik Schreiber wrote:

Hi,

I just uploaded a new version of the jad decompiler plugin.
Installation instructions are in the readme.

=> http://www.tagtraum.com/ideajad.html

Enjoy,

-hendrik

Changes:

- Added configuration panel
- Remembers project specific configurations
- Only the files that shall be decompiled are
extracted from jars
- Temporary files are now stored in java.io.tmpdir
and not in the home directory
- Multiple frames are handled correctly
- Added progressbar



--

Erb

==============================================================
"Most of you are familiar with the virtues of a programmer.
There are three, of course: laziness, impatience, and hubris."
- Larry Wall
==============================================================

0

Erb wrote:

So what do you think... has Jad come to the end of its life?


what do you mean ... ?
It's probably not being develped actively now ... but
can you suggest a better decompiler ?

Edo

0

There's files it can't handle. And as Java changes, the situation
may become worse. And unfortunately, no, there isn't a better one.
So we may be in trouble soon, unless someone can take over the
project.

Edoardo Comar wrote:

Erb wrote:

>> So what do you think... has Jad come to the end of its life?


what do you mean ... ?
It's probably not being develped actively now ... but
can you suggest a better decompiler ?

Edo



--

Erb

==============================================================
"Most of you are familiar with the virtues of a programmer.
There are three, of course: laziness, impatience, and hubris."
- Larry Wall
==============================================================

0

There's files it can't handle. And as Java changes,
the situation
may become worse. And unfortunately, no, there isn't
a better one.
So we may be in trouble soon, unless someone can take
over the
project.



well, unfortunately the code isn't open source :(

-hendrik

0

Nice ONE - great job - congratulations!


thanks.

1)
I have a projct with many source roots.
once I have defined the destination for decompiled
classes
in the jad plugin panel, I'd like not to be asked
again and again for
the destination each time I decompile a new class.


Right. I will consider your suggestion for the next version.

2) Also, I usually do not want my decompiled classes
be part of my
'real' sources I have to compile.
So to work well with the plugin - which now requires
a destination to
be one of the project sourceroots - I had to define a
srcroot that I
exclude from compilation.
Maybe using a temporary root for decompiled files,
would be nice ...


From the top of my head I don't know whether that can be done with the current Open API. We'll see...

-hendrik

0

Hendrik,
here are other suggestions :

3) I'd also find useful the 'decompile' menuitem in the project tree
(esp. in the classpath view!). It's annoying to have to open the the
.class in the editor to be able to decompile it.

4) an 'automatic' decompile option would be nice too.
ie whenever a .class is open in the editor, automatically perform
decompilation and substitute JAD's output to IDEA's own

1) and 3) are the options I'd love most to see next.

Edo

Hendrik Schreiber wrote:

>>1)
>>I have a projct with many source roots.
>>once I have defined the destination for decompiled
>>classes
>>in the jad plugin panel, I'd like not to be asked
>>again and again for
>>the destination each time I decompile a new class.


Right. I will consider your suggestion for the next version.


>>2) Also, I usually do not want my decompiled classes
>>be part of my
>>'real' sources I have to compile.
>>So to work well with the plugin - which now requires
>>a destination to
>>be one of the project sourceroots - I had to define a
>>srcroot that I
>>exclude from compilation.
>>Maybe using a temporary root for decompiled files,
>>would be nice ...


From the top of my head I don't know whether that can be done with the current Open API. We'll see...

-hendrik




--
Edoardo Comar
Cape Clear Software
http://www.capeclear.com

Register for our Web Services Seminar tour - "Lowering the Cost of
Business Integration".
See http://www.capeclear.com/seminars for details


0

Hendrik Schreiber wrote:
>>There's files it can't handle. And as Java changes,
>>the situation
>>may become worse. And unfortunately, no, there isn't
>>a better one.
>>So we may be in trouble soon, unless someone can take
>>over the
>>project.



well, unfortunately the code isn't open source :(

-hendrik


this decompiler is good and opensource :
http://sourceforge.net/projects/jode/

unfortunately, development seems to have halted here as well.

Edo

--
Edoardo Comar
Cape Clear Software
http://www.capeclear.com

Register for our Web Services Seminar tour - "Lowering the Cost of
Business Integration".
See http://www.capeclear.com/seminars for details

0

Hangs forever on startup :(

Here's a thread dump

Full thread dump Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode):

"AWT-EventQueue-1" prio=7 tid=0x1792A8B0 nid=0x6f0 waiting on condition [1bcaf00
0..1bcafd8c]
at java.lang.reflect.Field.copy(Unknown Source)
at java.lang.reflect.ReflectAccess.copyField(Unknown Source)
at sun.reflect.ReflectionFactory.copyField(Unknown Source)
at java.lang.Class.copyFields(Unknown Source)
at java.lang.Class.getFields(Unknown Source)
at com.intellij.openapi.util.DefaultJDOMExternalizer.writeExternal(Defau
ltJDOMExternalizer.java:32)
at com.intellij.openapi.util.DefaultJDOMExternalizer.writeExternal(Defau
ltJDOMExternalizer.java:48)
at com.intellij.ide.cf.writeExternal(cf.java:3)
at com.intellij.openapi.components.a.a.a(a.java:32)
at com.intellij.openapi.application.a.e.d(e.java:137)
at com.intellij.openapi.application.a.e.saveSettings(e.java:63)
at com.intellij.ide.cn.b(cn.java:9)
at com.intellij.ide.cn.b(cn.java:3)
at com.intellij.ide.cq.run(cq.java:1)
at com.intellij.util.Alarm$1.run(Alarm.java:3)
at com.intellij.util.Alarm$2.run(Alarm.java:6)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.intellij.ide.p.a(p.java:88)
at com.intellij.ide.p.dispatchEvent(p.java:40)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

"TimerQueue" daemon prio=5 tid=0x1B18DF08 nid=0x490 in Object.wait() [1ba6f000..
1ba6fd8c]
at java.lang.Object.wait(Native Method)
- waiting on (a javax.swing.TimerQueue) at javax.swing.TimerQueue.run(Unknown Source) - locked <0435E580>]]> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)

"StoreRefreshStatusThread" prio=2 tid=0x1780EF60 nid=0x990 waiting on condition

at java.lang.Thread.sleep(Native Method)
at com.intellij.openapi.vfs.b.b.bi.run(bi.java:7)

"WatchForChangesThread" prio=7 tid=0x1775FAD0 nid=0x60c runnable [1af6f000..1af6
fd8c]
at com.intellij.vfs.local.win32.FileWatcher.waitForChangeImpl(Native Met
hod)
at com.intellij.vfs.local.win32.FileWatcher.b(FileWatcher.java:17)
at com.intellij.openapi.vfs.b.b.bj.run(bj.java:28)

"Image Fetcher 3" daemon prio=9 tid=0x009B8C20 nid=0x7b8 in Object.wait() [1ad3f
000..1ad3fd8c]
at java.lang.Object.wait(Native Method)
- waiting on (a java.util.Vector) at sun.awt.image.ImageFetcher.nextImage(Unknown Source) - locked <04105038> (a java.util.Vector) at sun.awt.image.ImageFetcher.fetchloop(Unknown Source) at sun.awt.image.ImageFetcher.run(Unknown Source) "Image Fetcher 2" daemon prio=9 tid=0x009B89A8 nid=0x5e0 in Object.wait() [1ac3f 000..1ac3fd8c] at java.lang.Object.wait(Native Method) - waiting on <04105038> (a java.util.Vector) at sun.awt.image.ImageFetcher.nextImage(Unknown Source) - locked <04105038> (a java.util.Vector) at sun.awt.image.ImageFetcher.fetchloop(Unknown Source) at sun.awt.image.ImageFetcher.run(Unknown Source) "AlarmThread" prio=7 tid=0x17495C28 nid=0x8d8 in Object.wait() [1ab3f000..1ab3fd 8c] at java.lang.Object.wait(Native Method) - waiting on <04187DA8> (a java.lang.Object) at com.intellij.util.Alarm$MyThread.run(Alarm.java:63) - locked <04187DA8> (a java.lang.Object) "AlarmThread" prio=7 tid=0x1748FD50 nid=0x6b4 in Object.wait() [1aa3f000..1aa3fd 8c] at java.lang.Object.wait(Native Method) - waiting on <04187E10> (a java.lang.Object) at java.lang.Object.wait(Unknown Source) at com.intellij.util.Alarm$MyThread.run(Alarm.java:43) - locked <04187E10>]]> (a java.lang.Object)

"AWT-EventQueue-0" prio=7 tid=0x17830380 nid=0x76c runnable

at java.util.ArrayList.get(Unknown Source)
at com.intellij.openapi.actionSystem.DefaultActionGroup.a(DefaultActionG
roup.java:13)
at com.intellij.openapi.actionSystem.DefaultActionGroup.a(DefaultActionG
roup.java:84)
at com.intellij.openapi.actionSystem.DefaultActionGroup.a(DefaultActionG
roup.java:33)
at com.intellij.openapi.actionSystem.DefaultActionGroup.add(DefaultActio
nGroup.java:20)
at com.intellij.openapi.actionSystem.b.a.a(a.java:133)
at com.intellij.openapi.actionSystem.b.a.b(a.java:12)
at com.intellij.openapi.actionSystem.b.a.a(a.java:124)
- locked (a java.lang.Object) at com.intellij.idea.r.r(r.java:53) at com.intellij.idea.r.g(r.java:70) at com.intellij.idea.r.a(r.java:55) at com.intellij.idea.l.run(l.java:1) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) "Image Fetcher 1" daemon prio=9 tid=0x177DC5C8 nid=0x680 in Object.wait() [1a6ef 000..1a6efd8c] at java.lang.Object.wait(Native Method) - waiting on <04105038> (a java.util.Vector) at sun.awt.image.ImageFetcher.nextImage(Unknown Source) - locked <04105038> (a java.util.Vector) at sun.awt.image.ImageFetcher.fetchloop(Unknown Source) at sun.awt.image.ImageFetcher.run(Unknown Source) "Java2D Disposer" daemon prio=10 tid=0x17760BE0 nid=0x840 in Object.wait() [1a5e f000..1a5efd8c] at java.lang.Object.wait(Native Method) - waiting on <0410F520> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(Unknown Source) - locked <0410F520> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(Unknown Source) at sun.java2d.Disposer.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "Image Fetcher 0" daemon prio=9 tid=0x17757460 nid=0x960 in Object.wait() [1a4ef 000..1a4efd8c] at java.lang.Object.wait(Native Method) - waiting on <04105038> (a java.util.Vector) at sun.awt.image.ImageFetcher.nextImage(Unknown Source) - locked <04105038> (a java.util.Vector) at sun.awt.image.ImageFetcher.fetchloop(Unknown Source) at sun.awt.image.ImageFetcher.run(Unknown Source) "AWT-Windows" daemon prio=7 tid=0x175A9B08 nid=0x6f4 runnable [1a3ef000..1a3efd8 c] at sun.awt.windows.WToolkit.eventLoop(Native Method) at sun.awt.windows.WToolkit.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "AWT-Shutdown" prio=5 tid=0x175A9780 nid=0x610 in Object.wait() [1a2ef000..1a2ef d8c] at java.lang.Object.wait(Native Method) - waiting on <04093FB0> (a java.lang.Object) at java.lang.Object.wait(Unknown Source) at sun.awt.AWTAutoShutdown.run(Unknown Source) - locked <04093FB0>]]> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)

"License checker" prio=5 tid=0x1746D400 nid=0x5f0 runnable
at java.net.PlainDatagramSocketImpl.receive(Native Method)
- locked (a java.net.PlainDatagramSocketImpl) at java.net.DatagramSocket.receive(Unknown Source) - locked <04094458> (a java.net.DatagramPacket) - locked <04094478>]]> (a java.net.MulticastSocket)
at com.intellij.ide.j.i.d(i.java:33)
at com.intellij.idea.i.run(i.java)
at java.lang.Thread.run(Unknown Source)

"Lock thread" prio=5 tid=0x176F1490 nid=0x984 runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked ]]> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at com.intellij.idea.p.run(p.java:0)
at java.lang.Thread.run(Unknown Source)

"Signal Dispatcher" daemon prio=10 tid=0x0098AAB8 nid=0x70c waiting on condition


"Finalizer" daemon prio=9 tid=0x009D3E78 nid=0x8f8 in Object.wait() [16f1f000..1
6f1fd8c]
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(Unknown Source) - locked <03EB3FE8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source) "Reference Handler" daemon prio=10 tid=0x009D3208 nid=0x7e8 in Object.wait() [16 e1f000..16e1fd8c] at java.lang.Object.wait(Native Method) - waiting on <03EB4050> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Unknown Source) at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source) - locked <03EB4050>]]> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00865408 nid=0x784 waiting on condition

"VM Thread" prio=5 tid=0x009D1FD0 nid=0x8b4 runnable

"VM Periodic Task Thread" prio=10 tid=0x00988F90 nid=0x9a0 waiting on condition

"Suspend Checker Thread" prio=10 tid=0x0098A0D0 nid=0x68c runnable


--

Erb

==============================================================
"Most of you are familiar with the virtues of a programmer.
There are three, of course: laziness, impatience, and hubris."
- Larry Wall
==============================================================

0

Hangs forever on startup :(


always or just sometimes?

it does not seem to hang in the plugin's code though...

-hendrik


Here's a thread dump

Full thread dump Java HotSpot(TM) Client VM
(1.4.1_01-b01 mixed mode):

"AWT-EventQueue-1" prio=7 tid=0x1792A8B0 nid=0x6f0
waiting on condition [1bcaf00
0..1bcafd8c]
at java.lang.reflect.Field.copy(Unknown
Unknown Source)
at
at
at
t java.lang.reflect.ReflectAccess.copyField(Unknown
Source)
at
at
at sun.reflect.ReflectionFactory.copyField(Unknown
n Source)
at java.lang.Class.copyFields(Unknown Source)
at java.lang.Class.getFields(Unknown Source)
at
at
at
t
com.intellij.openapi.util.DefaultJDOMExternalizer.writ
External(Defau
ltJDOMExternalizer.java:32)
at
at
at
t
com.intellij.openapi.util.DefaultJDOMExternalizer.writ
External(Defau
ltJDOMExternalizer.java:48)
at
at com.intellij.ide.cf.writeExternal(cf.java:3)
at
at
at com.intellij.openapi.components.a.a.a(a.java:32)
at
at
at
t com.intellij.openapi.application.a.e.d(e.java:137)
at
at
at
t
com.intellij.openapi.application.a.e.saveSettings(e.ja
a:63)
at com.intellij.ide.cn.b(cn.java:9)
at com.intellij.ide.cn.b(cn.java:3)
at com.intellij.ide.cq.run(cq.java:1)
at
at com.intellij.util.Alarm$1.run(Alarm.java:3)
at
at com.intellij.util.Alarm$2.run(Alarm.java:6)
at
at
at java.awt.event.InvocationEvent.dispatch(Unknown
n Source)
at java.awt.EventQueue.dispatchEvent(Unknown
Unknown Source)
at com.intellij.ide.p.a(p.java:88)
at
at com.intellij.ide.p.dispatchEvent(p.java:40)
at
at
at
t
java.awt.EventDispatchThread.pumpOneEventForHierarchy(
nknown Source)

at
at
at
t
java.awt.EventDispatchThread.pumpEventsForHierarchy(Un
nown Source)
at
at
at java.awt.EventDispatchThread.pumpEvents(Unknown
n Source)
at
at
at java.awt.EventDispatchThread.pumpEvents(Unknown
n Source)
at java.awt.EventDispatchThread.run(Unknown
Unknown Source)

"TimerQueue" daemon prio=5 tid=0x1B18DF08 nid=0x490
in Object.wait() [1ba6f000..
1ba6fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0435E580> (a
580> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(Unknown Source)
- locked <0435E580> (a
580> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)

"StoreRefreshStatusThread" prio=2 tid=0x1780EF60
nid=0x990 waiting on condition

at java.lang.Thread.sleep(Native Method)
at
at
at com.intellij.openapi.vfs.b.b.bi.run(bi.java:7)

"WatchForChangesThread" prio=7 tid=0x1775FAD0
nid=0x60c runnable [1af6f000..1af6
fd8c]
at
at
at
t
com.intellij.vfs.local.win32.FileWatcher.waitForChange
mpl(Native Met
hod)
at
at
at
t
com.intellij.vfs.local.win32.FileWatcher.b(FileWatcher
java:17)
at
at
at com.intellij.openapi.vfs.b.b.bj.run(bj.java:28)

"Image Fetcher 3" daemon prio=9 tid=0x009B8C20
nid=0x7b8 in Object.wait() [1ad3f
000..1ad3fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <04105038> (a java.util.Vector)
at
at sun.awt.image.ImageFetcher.nextImage(Unknown
nown Source)
- locked <04105038> (a java.util.Vector)
at
at sun.awt.image.ImageFetcher.fetchloop(Unknown
nown Source)
at sun.awt.image.ImageFetcher.run(Unknown
Unknown Source)

"Image Fetcher 2" daemon prio=9 tid=0x009B89A8
nid=0x5e0 in Object.wait() [1ac3f
000..1ac3fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <04105038> (a java.util.Vector)
at
at sun.awt.image.ImageFetcher.nextImage(Unknown
nown Source)
- locked <04105038> (a java.util.Vector)
at
at sun.awt.image.ImageFetcher.fetchloop(Unknown
nown Source)
at sun.awt.image.ImageFetcher.run(Unknown
Unknown Source)

"AlarmThread" prio=7 tid=0x17495C28 nid=0x8d8 in
Object.wait() [1ab3f000..1ab3fd
8c]
at java.lang.Object.wait(Native Method)
- waiting on <04187DA8> (a java.lang.Object)
at
at
at
t com.intellij.util.Alarm$MyThread.run(Alarm.java:63)
- locked <04187DA8> (a java.lang.Object)

"AlarmThread" prio=7 tid=0x1748FD50 nid=0x6b4 in
Object.wait() [1aa3f000..1aa3fd
8c]
at java.lang.Object.wait(Native Method)
- waiting on <04187E10> (a java.lang.Object)
at java.lang.Object.wait(Unknown Source)
at
at
at
t com.intellij.util.Alarm$MyThread.run(Alarm.java:43)
- locked <04187E10> (a java.lang.Object)

"AWT-EventQueue-0" prio=7 tid=0x17830380 nid=0x76c
runnable

at java.util.ArrayList.get(Unknown Source)
at
at
at
t
com.intellij.openapi.actionSystem.DefaultActionGroup.a
DefaultActionG
roup.java:13)
at
at
at
t
com.intellij.openapi.actionSystem.DefaultActionGroup.a
DefaultActionG
roup.java:84)
at
at
at
t
com.intellij.openapi.actionSystem.DefaultActionGroup.a
DefaultActionG
roup.java:33)
at
at
at
t
com.intellij.openapi.actionSystem.DefaultActionGroup.a
d(DefaultActio
nGroup.java:20)
at
at
at
t com.intellij.openapi.actionSystem.b.a.a(a.java:133)
at
at
at
t com.intellij.openapi.actionSystem.b.a.b(a.java:12)
at
at
at
t com.intellij.openapi.actionSystem.b.a.a(a.java:124)
- locked <0418C768> (a java.lang.Object)
at com.intellij.idea.r.r(r.java:53)
at com.intellij.idea.r.g(r.java:70)
at com.intellij.idea.r.a(r.java:55)
at com.intellij.idea.l.run(l.java:1)
at
at
at java.awt.event.InvocationEvent.dispatch(Unknown
n Source)
at java.awt.EventQueue.dispatchEvent(Unknown
Unknown Source)
at
at
at
t
java.awt.EventDispatchThread.pumpOneEventForHierarchy(
nknown Source)

at
at
at
t
java.awt.EventDispatchThread.pumpEventsForHierarchy(Un
nown Source)
at
at
at java.awt.EventDispatchThread.pumpEvents(Unknown
n Source)
at
at
at java.awt.EventDispatchThread.pumpEvents(Unknown
n Source)
at java.awt.EventDispatchThread.run(Unknown
Unknown Source)

"Image Fetcher 1" daemon prio=9 tid=0x177DC5C8
nid=0x680 in Object.wait() [1a6ef
000..1a6efd8c]
at java.lang.Object.wait(Native Method)
- waiting on <04105038> (a java.util.Vector)
at
at sun.awt.image.ImageFetcher.nextImage(Unknown
nown Source)
- locked <04105038> (a java.util.Vector)
at
at sun.awt.image.ImageFetcher.fetchloop(Unknown
nown Source)
at sun.awt.image.ImageFetcher.run(Unknown
Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x17760BE0
nid=0x840 in Object.wait() [1a5e
f000..1a5efd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0410F520> (a
520> (a java.lang.ref.ReferenceQueue$Lock)
at
at java.lang.ref.ReferenceQueue.remove(Unknown
nown Source)
- locked <0410F520> (a
520> (a java.lang.ref.ReferenceQueue$Lock)
at
at java.lang.ref.ReferenceQueue.remove(Unknown
nown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

"Image Fetcher 0" daemon prio=9 tid=0x17757460
nid=0x960 in Object.wait() [1a4ef
000..1a4efd8c]
at java.lang.Object.wait(Native Method)
- waiting on <04105038> (a java.util.Vector)
at
at sun.awt.image.ImageFetcher.nextImage(Unknown
nown Source)
- locked <04105038> (a java.util.Vector)
at
at sun.awt.image.ImageFetcher.fetchloop(Unknown
nown Source)
at sun.awt.image.ImageFetcher.run(Unknown
Unknown Source)

"AWT-Windows" daemon prio=7 tid=0x175A9B08 nid=0x6f4
runnable [1a3ef000..1a3efd8
c]
at sun.awt.windows.WToolkit.eventLoop(Native
(Native Method)
at sun.awt.windows.WToolkit.run(Unknown
Unknown Source)
at java.lang.Thread.run(Unknown Source)

"AWT-Shutdown" prio=5 tid=0x175A9780 nid=0x610 in
Object.wait() [1a2ef000..1a2ef
d8c]
at java.lang.Object.wait(Native Method)
- waiting on <04093FB0> (a java.lang.Object)
at java.lang.Object.wait(Unknown Source)
at sun.awt.AWTAutoShutdown.run(Unknown
Unknown Source)
- locked <04093FB0> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)

"License checker" prio=5 tid=0x1746D400 nid=0x5f0
runnable
at
at
at java.net.PlainDatagramSocketImpl.receive(Native
e Method)
- locked <04094428> (a
428> (a java.net.PlainDatagramSocketImpl)
at java.net.DatagramSocket.receive(Unknown
Unknown Source)
- locked <04094458> (a
458> (a java.net.DatagramPacket)
- locked <04094478> (a
478> (a java.net.MulticastSocket)
at com.intellij.ide.j.i.d(i.java:33)
at com.intellij.idea.i.run(i.java)
at java.lang.Thread.run(Unknown Source)

"Lock thread" prio=5 tid=0x176F1490 nid=0x984
runnable
at
at java.net.PlainSocketImpl.socketAccept(Native
tive Method)
at java.net.PlainSocketImpl.accept(Unknown
Unknown Source)
- locked <04094548> (a
548> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(Unknown
Unknown Source)
at java.net.ServerSocket.accept(Unknown
Unknown Source)
at com.intellij.idea.p.run(p.java:0)
at java.lang.Thread.run(Unknown Source)

"Signal Dispatcher" daemon prio=10 tid=0x0098AAB8
nid=0x70c waiting on condition


"Finalizer" daemon prio=9 tid=0x009D3E78 nid=0x8f8 in
Object.wait() [16f1f000..1
6f1fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <03EB3FE8> (a
FE8> (a java.lang.ref.ReferenceQueue$Lock)
at
at java.lang.ref.ReferenceQueue.remove(Unknown
nown Source)
- locked <03EB3FE8> (a
FE8> (a java.lang.ref.ReferenceQueue$Lock)
at
at java.lang.ref.ReferenceQueue.remove(Unknown
nown Source)
at
at
at
t java.lang.ref.Finalizer$FinalizerThread.run(Unknown
Source)

"Reference Handler" daemon prio=10 tid=0x009D3208
nid=0x7e8 in Object.wait() [16
e1f000..16e1fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <03EB4050> (a
050> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Unknown Source)
at
at
at
t
java.lang.ref.Reference$ReferenceHandler.run(Unknown
Source)
- locked <03EB4050> (a
050> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00865408 nid=0x784 waiting on
condition

"VM Thread" prio=5 tid=0x009D1FD0 nid=0x8b4 runnable

"VM Periodic Task Thread" prio=10 tid=0x00988F90
nid=0x9a0 waiting on condition

"Suspend Checker Thread" prio=10 tid=0x0098A0D0
nid=0x68c runnable


--

Erb

======================================================
=======
"Most of you are familiar with the virtues of a
programmer.
There are three, of course: laziness, impatience, and
hubris."
- Larry Wall
======================================================
=======


0

I have filed a bug on that. Do you have DiffFile as well ?
It is fixed in 664
(http://www.intellij.net/tracker/idea/viewSCR?publicId=6161)

Jacques
"Erb" <dont@evenbother.com> wrote in message
news:ap1vv1$p6q$1@is.intellij.net...

Hangs forever on startup :(

>

Here's a thread dump

>

Full thread dump Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode):

>

"AWT-EventQueue-1" prio=7 tid=0x1792A8B0 nid=0x6f0 waiting on condition

[1bcaf00

0..1bcafd8c]
at java.lang.reflect.Field.copy(Unknown Source)
at java.lang.reflect.ReflectAccess.copyField(Unknown Source)
at sun.reflect.ReflectionFactory.copyField(Unknown Source)
at java.lang.Class.copyFields(Unknown Source)
at java.lang.Class.getFields(Unknown Source)
at

com.intellij.openapi.util.DefaultJDOMExternalizer.writeExternal(Defau

ltJDOMExternalizer.java:32)
at

com.intellij.openapi.util.DefaultJDOMExternalizer.writeExternal(Defau

ltJDOMExternalizer.java:48)
at com.intellij.ide.cf.writeExternal(cf.java:3)
at com.intellij.openapi.components.a.a.a(a.java:32)
at com.intellij.openapi.application.a.e.d(e.java:137)
at com.intellij.openapi.application.a.e.saveSettings(e.java:63)
at com.intellij.ide.cn.b(cn.java:9)
at com.intellij.ide.cn.b(cn.java:3)
at com.intellij.ide.cq.run(cq.java:1)
at com.intellij.util.Alarm$1.run(Alarm.java:3)
at com.intellij.util.Alarm$2.run(Alarm.java:6)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.intellij.ide.p.a(p.java:88)
at com.intellij.ide.p.dispatchEvent(p.java:40)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown

Source)
>

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown

Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

>

"TimerQueue" daemon prio=5 tid=0x1B18DF08 nid=0x490 in Object.wait()

[1ba6f000..

1ba6fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0435E580> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(Unknown Source)
- locked <0435E580> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)

>

"StoreRefreshStatusThread" prio=2 tid=0x1780EF60 nid=0x990 waiting on

condition


at java.lang.Thread.sleep(Native Method)
at com.intellij.openapi.vfs.b.b.bi.run(bi.java:7)

>

"WatchForChangesThread" prio=7 tid=0x1775FAD0 nid=0x60c runnable

[1af6f000..1af6

fd8c]
at

com.intellij.vfs.local.win32.FileWatcher.waitForChangeImpl(Native Met

hod)
at com.intellij.vfs.local.win32.FileWatcher.b(FileWatcher.java:17)
at com.intellij.openapi.vfs.b.b.bj.run(bj.java:28)

>

"Image Fetcher 3" daemon prio=9 tid=0x009B8C20 nid=0x7b8 in Object.wait()

[1ad3f

000..1ad3fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <04105038> (a java.util.Vector)
at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
- locked <04105038> (a java.util.Vector)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)

>

"Image Fetcher 2" daemon prio=9 tid=0x009B89A8 nid=0x5e0 in Object.wait()

[1ac3f

000..1ac3fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <04105038> (a java.util.Vector)
at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
- locked <04105038> (a java.util.Vector)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)

>

"AlarmThread" prio=7 tid=0x17495C28 nid=0x8d8 in Object.wait()

[1ab3f000..1ab3fd

8c]
at java.lang.Object.wait(Native Method)
- waiting on <04187DA8> (a java.lang.Object)
at com.intellij.util.Alarm$MyThread.run(Alarm.java:63)
- locked <04187DA8> (a java.lang.Object)

>

"AlarmThread" prio=7 tid=0x1748FD50 nid=0x6b4 in Object.wait()

[1aa3f000..1aa3fd

8c]
at java.lang.Object.wait(Native Method)
- waiting on <04187E10> (a java.lang.Object)
at java.lang.Object.wait(Unknown Source)
at com.intellij.util.Alarm$MyThread.run(Alarm.java:43)
- locked <04187E10> (a java.lang.Object)

>

"AWT-EventQueue-0" prio=7 tid=0x17830380 nid=0x76c runnable


>

at java.util.ArrayList.get(Unknown Source)
at

com.intellij.openapi.actionSystem.DefaultActionGroup.a(DefaultActionG

roup.java:13)
at

com.intellij.openapi.actionSystem.DefaultActionGroup.a(DefaultActionG

roup.java:84)
at

com.intellij.openapi.actionSystem.DefaultActionGroup.a(DefaultActionG

roup.java:33)
at

com.intellij.openapi.actionSystem.DefaultActionGroup.add(DefaultActio

nGroup.java:20)
at com.intellij.openapi.actionSystem.b.a.a(a.java:133)
at com.intellij.openapi.actionSystem.b.a.b(a.java:12)
at com.intellij.openapi.actionSystem.b.a.a(a.java:124)
- locked <0418C768> (a java.lang.Object)
at com.intellij.idea.r.r(r.java:53)
at com.intellij.idea.r.g(r.java:70)
at com.intellij.idea.r.a(r.java:55)
at com.intellij.idea.l.run(l.java:1)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown

Source)
>

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown

Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

>

"Image Fetcher 1" daemon prio=9 tid=0x177DC5C8 nid=0x680 in Object.wait()

[1a6ef

000..1a6efd8c]
at java.lang.Object.wait(Native Method)
- waiting on <04105038> (a java.util.Vector)
at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
- locked <04105038> (a java.util.Vector)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)

>

"Java2D Disposer" daemon prio=10 tid=0x17760BE0 nid=0x840 in Object.wait()

[1a5e

f000..1a5efd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0410F520> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0410F520> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

>

"Image Fetcher 0" daemon prio=9 tid=0x17757460 nid=0x960 in Object.wait()

[1a4ef

000..1a4efd8c]
at java.lang.Object.wait(Native Method)
- waiting on <04105038> (a java.util.Vector)
at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
- locked <04105038> (a java.util.Vector)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)

>

"AWT-Windows" daemon prio=7 tid=0x175A9B08 nid=0x6f4 runnable

[1a3ef000..1a3efd8

c]
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

>

"AWT-Shutdown" prio=5 tid=0x175A9780 nid=0x610 in Object.wait()

[1a2ef000..1a2ef

d8c]
at java.lang.Object.wait(Native Method)
- waiting on <04093FB0> (a java.lang.Object)
at java.lang.Object.wait(Unknown Source)
at sun.awt.AWTAutoShutdown.run(Unknown Source)
- locked <04093FB0> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)

>

"License checker" prio=5 tid=0x1746D400 nid=0x5f0 runnable

at java.net.PlainDatagramSocketImpl.receive(Native Method)
- locked <04094428> (a java.net.PlainDatagramSocketImpl)
at java.net.DatagramSocket.receive(Unknown Source)
- locked <04094458> (a java.net.DatagramPacket)
- locked <04094478> (a java.net.MulticastSocket)
at com.intellij.ide.j.i.d(i.java:33)
at com.intellij.idea.i.run(i.java)
at java.lang.Thread.run(Unknown Source)

>

"Lock thread" prio=5 tid=0x176F1490 nid=0x984 runnable

at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <04094548> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at com.intellij.idea.p.run(p.java:0)
at java.lang.Thread.run(Unknown Source)

>

"Signal Dispatcher" daemon prio=10 tid=0x0098AAB8 nid=0x70c waiting on

condition

>

"Finalizer" daemon prio=9 tid=0x009D3E78 nid=0x8f8 in Object.wait()

[16f1f000..1

6f1fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <03EB3FE8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <03EB3FE8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

>

"Reference Handler" daemon prio=10 tid=0x009D3208 nid=0x7e8 in

Object.wait() [16

e1f000..16e1fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <03EB4050> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <03EB4050> (a java.lang.ref.Reference$Lock)

>

"main" prio=5 tid=0x00865408 nid=0x784 waiting on condition

>

"VM Thread" prio=5 tid=0x009D1FD0 nid=0x8b4 runnable

>

"VM Periodic Task Thread" prio=10 tid=0x00988F90 nid=0x9a0 waiting on

condition
>

"Suspend Checker Thread" prio=10 tid=0x0098A0D0 nid=0x68c runnable

>
>

--

>

Erb

>

==============================================================
"Most of you are familiar with the virtues of a programmer.
There are three, of course: laziness, impatience, and hubris."
- Larry Wall
==============================================================

>


0

Thank you for tracking that down for me, I was too lazy.
I wonder what the problem (in IDEA code) turned out to be.

Jacques Morel wrote:

I have filed a bug on that. Do you have DiffFile as well ?
It is fixed in 664
(http://www.intellij.net/tracker/idea/viewSCR?publicId=6161)

Jacques
"Erb" <dont@evenbother.com> wrote in message
news:ap1vv1$p6q$1@is.intellij.net...

>>Hangs forever on startup :(
>>
>>Here's a thread dump
>>
>>Full thread dump Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode):
>>



--

Erb

==============================================================
"Most of you are familiar with the virtues of a programmer.
There are three, of course: laziness, impatience, and hubris."
- Larry Wall
==============================================================

0

just uploaded a new version.

=> http://www.tagtraum.com/ideajad.html

thanks for your input. i wasn't able to put everything you guys requested in there, but at least there is now a release that works with the latest version of idea.

-hendrik

0

But jad is far better than jode and, as you stated, developement has halted in both cases anyway.

Another promising decompiler I found yesterday is JReversePro http://sourceforge.net/projects/jrevpro/. It is not perfect, but it is open source, actively developed and much more up to date than jad or jode.

I guess, you should all take a look at it!

Michael

0

Please sign in to leave a comment.