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.

Bug 81024 - wrong drive letter causes hang on startup
Summary: wrong drive letter causes hang on startup
Status: RESOLVED DUPLICATE of bug 79233
Alias: None
Product: platform
Classification: Unclassified
Component: Module System (show other bugs)
Version: 5.x
Hardware: PC All
: P4 blocker (vote)
Assignee: Jesse Glick
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-07-24 22:27 UTC by rrochat
Modified: 2008-12-23 14:22 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description rrochat 2006-07-24 22:27:49 UTC
Assumptions:
1) Drive letter case should not matter on Windows platforms
2) The location of the JRE should not matter.

Problem:
If you have a captive JRE in a subdirectory of your application and invoke the
application with a command that specifies the jdkhome directory with an
uppercase letter, i.e. 

c:\myDir\ide\bin\myApp –jdkhome C:\myDir\jre

the splash screen appears followed by an error dialog with the following text:
Warning - could not install some modules:
        Actions APIs - No module providing the capability
org.openide.modules.ModuleFormat1 could be found.
        Actions APIs - The module Dialogs API would also need to be installed.
        Actions APIs - The module Explorer And Property Sheet API would also
need to be installed. . .

With NetBeans 5.5, you get the option to Disable and Continue but it does not
work, of course – the application is hopelessly hung and the process tree has to
be killed manually.  In 5.0, it just hangs.

If you invoke the same command except that the jdkhome is specified with a
lowercase c:, it works.

------------------------
Steps To Reproduce:
------------------------
1. Build a zip distribution for the Feedreader sample and extract it to c:. 
This creates c:\feedreader.
2. Copy a jre into this directory.
3. Execute this command (make sure to use an uppercase drive letter):
feedreader\bin\feedreader --userdir user1 --jdkhome C:\feedreader\jre
and you will see the splash screen followed by the error dialog.
4. Replace the uppercase jdkhome drive letter with a lowercase one and it will work.

--------
Analysis:
--------
In ModuleSystem.loadBootModules(), the value of the variable manifestUrlS always
has an uppercase drive letter.
IF the jre drive letter is also uppercase, the “startsWith” clause is matched,
so the MANIFESTS: loop continues and some critical components are not processed.
 Specifically, these boot modules are NOT loaded:
org.netbeans.bootstrap
org.openide.modules  
org.openide.util
org.netbeans.core.startup
org.openide.filesystems


This was first reported in netbeans forum thread in August 2005:
http://www.netbeans.org/servlets/BrowseList?list=nbdev&by=thread&from=206393

I’ve seen it from time to time, but have been unable to create simple steps to
reproduce until now.  I’m still not 100% sure of the cause or solution, but
believe it to be at least reproducible now.  It’s a really nasty bug because it
stops you cold and the solution (changing the drive letter) isn’t obvious or
intuitive, but once you discover it, the solution is simple enough that you
don't want to waste any more time debugging it.  I hope there's enough
information here that it can be fixed.
Comment 1 _ rkubacki 2006-11-30 16:47:47 UTC
I think there is already some problem with manifestUrlS reported.
Comment 2 Jesse Glick 2008-11-24 16:14:51 UTC

*** This issue has been marked as a duplicate of 79233 ***
Comment 3 Quality Engineering 2008-12-23 14:22:09 UTC
This issue had *1 votes* before move to platform component