Comments (4)
I just tried 1.4. My "guess" is that it is a memory issue. The directory tree fully displays, but as I go down the list to open a class file, some open others do not. There doesn't appear to be a pattern, so I'm thinking it has to do with the sequence the classes are loaded in. Assuming they don't load alphabetically...
I am using the "Windows" exe version.
from jd-gui.
Hi Craig. The C++ version suffers from the limitation of Win32 GDI : once all the GDI handles are consumed, some bugs appear on the GUI. For the Java/Groovy version, the graphic resources saturation is less clear for me. To validate your hypothesis, you can try to increase Xmx:
java -Xmx1024m -jar jd-gui-x.y.z.jar
Another hypothesis may be that the background indexing mechanism, consumes too much resource (CPU & memory) and destabilizes the JVM.
from jd-gui.
With a 32 bit java at 768m I see the following:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at org.codehaus.groovy.runtime.callsite.BooleanReturningMethodInvoker.invoke(BooleanReturningMethodInvoker.java:53)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.grep(DefaultGroovyMethods.java:2444)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.grep(DefaultGroovyMethods.java:2471)
at org.codehaus.groovy.runtime.dgm$305.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:82)
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:335)
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:369)
at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:207)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:338)
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:369)
at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
...
Using a 64 bit java with Xmx = 2048m I get the following:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.codehaus.groovy.runtime.callsite.BooleanReturningMethodInvoker.invoke(BooleanReturningMethodInvoker.java:53)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.grep(DefaultGroovyMethods.java:2444)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.grep(DefaultGroovyMethods.java:2471)
at org.codehaus.groovy.runtime.dgm$305.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:333)
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:369)
at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:207)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:338)
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:369)
at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
...
Both hinge at the same point PogoMetaMethodSite.java:207. I've played with a few other settings for Xmx (all on 64 bit) and it seems to bounce around between the two above stacktraces. Interestingly, my max memory usage on the box ends up around 6.4 gig using both 4096m and 5120m.
from jd-gui.
OK. I see on both stacktraces:
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:333)
...
at org.jd.gui.view.component.TypePage.searchTypeHavingMember(TypePage.groovy:335)
This method executes a recursive search on indexes to enable or disable hyperlinks on the page. I can add a try-catch to prevent this stack overflow.
from jd-gui.
Related Issues (20)
- Will not recognize Java on macOS HOT 1
- Unable to open .class files from Minecraft HOT 2
- decompiled jar to source but compile java decompiled code error
- Please advise how to map getBody text to line numberts in original source code HOT 3
- Please advise how to identify method invocations
- jd-gui fails to build HOT 2
- [Linux] Interface text is tiny on 4K display HOT 1
- On JDK 17 compiled classes, null when expanding class file HOT 3
- It caches the decompiled code and does not refresh when the binary changes HOT 2
- java.lang.RuntimeException: Zip entry 'org/' tries to escape target directory HOT 1
- "No files are open" HOT 3
- Why Java 8 is not supporting? Could not find the main class. Program will exit.
- Erroneous processing of parentheses
- The some 'internal error' in this Java decompiler HOT 9
- Application simply not doing anything HOT 1
- not saving all resources HOT 2
- Does jd-gui 1.6.6 have an open problem size limit? There is no response to opening the 80M jar package HOT 1
- [macOS] HOT 2
- how to delete and add code
- Is there any guide to integrate with other tools?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jd-gui.