This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Signed jars need to be verified and also fetches all the signature verification classes to memory, which significantly hurts startup performance. Please repackage the jh-1.1.3.jar to not contain the signature.
Should be done also for release35
Transferring per Jesse's request
Core is supposed to use JarFile(File,false) constructor consistently. I thought it did already - apparently not.
Not enough! We will keep running to the brick wall again and again as long as there is a single jar: URL. The JarURLHandler will kindly verify the jar for you. sun.net.www.protocol.jar.URLJarFile (ex JarFile) constructor just calls super(ParseUtil.decode(url.getFile())); which in turn calls JarFile(file, true, OPEN_READ) and you can't teach it otherwise. So in short term I'm for repackaging JH, in long term get rid of the magic introduced by using jar: URLs.
All right. In fact I really doubt that any jar: URL from jh.jar is constructed during startup. However it is likely one would be created during showing help, and causing excess loading/time there is not desirable either.
Created attachment 9295 [details] Don't verify jars from our code
OK, the above patch ensures that the jars are not verified by our code. It removes the mentioned startup time regresstion. You're right that the time to verify the JH jar is then shifted to the first usage of the JavaHelp.
committed * Up-To-Date 1.9 core/bootstrap/src/org/netbeans/Main.java committed * Up-To-Date 1.47 core/src/org/netbeans/core/modules/Module.java
Merged. committed * Up-To-Date 1.8.2.1 core/bootstrap/src/org/netbeans/Main.java committed * Up-To-Date 1.46.2.1 core/src/org/netbeans/core/modules/Module.java
Still not enough. On Solaris, due to fix of issue 22455, the jh.jar is prepended to the bootclasspath, which means its manifest is parsed during the startup using jar:file: URL. Moreover, the workaround from #22455 is active even if I use different JDK which don't link the jh library. Part of the extended startup log: @3967 - ModuleSystem.loadBootModules started @3980 - got all manifests dT=13 @5075 - processed jar:file:/a/studio5_se/modules/autoload/ext/jh-1.1.3.jar!/META-INF/MANIFEST.MF dT=1095 @5079 - processed jar:file:/a/studio5_se/lib/ext/boot.jar!/META-INF/MANIFEST.MF dT=4 @5081 - processed jar:file:/a/studio5_se/lib/ext/cmd.jar!/META-INF/MANIFEST.MF dT=2
Leave as a separate item.
verified in NB3.6