Bug 316660 - Eclipse fails to start if the directory path contains '!'.
Summary: Eclipse fails to start if the directory path contains '!'.
Status: CLOSED DUPLICATE of bug 3109
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: Framework (show other bugs)
Version: 3.6   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: equinox.framework-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 316661 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-06-11 18:11 EDT by Vlad Zahariev CLA
Modified: 2010-06-14 09:54 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vlad Zahariev CLA 2010-06-11 18:11:26 EDT
Build Identifier: I20100608-0911

If a path to eclipse directory location contains a '!' character (for example the unzipped eclipse is located in 'C:\tmp\eclipse!' folder on windows) eclipse 3.6.0 fails to start returning errno 13.
Execution of eclipsec.exe produces the following output:
org.eclipse.osgi error loading: jar:file:/c:/tmp/eclipse!/plugins/org.eclipse.os
gi_3.6.0.v20100517.jar!/hookconfigurators.properties
java.io.FileNotFoundException: c:\tmp\eclipse (The system cannot find the file s
pecified)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(Unknown Source)
        at java.util.jar.JarFile.<init>(Unknown Source)
        at java.util.jar.JarFile.<init>(Unknown Source)
        at sun.net.www.protocol.jar.URLJarFile.<init>(Unknown Source)
        at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)
        at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)
        at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
        at sun.net.www.protocol.jar.JarURLConnection.getInputStream(Unknown Sour
ce)
        at java.net.URL.openStream(Unknown Source)
        at org.eclipse.osgi.baseadaptor.HookRegistry.mergeFileHookConfigurators(
HookRegistry.java:123)
        at org.eclipse.osgi.baseadaptor.HookRegistry.initialize(HookRegistry.jav
a:98)
        at org.eclipse.osgi.baseadaptor.BaseAdaptor.<init>(BaseAdaptor.java:89)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.createAdaptor(Eclipse
Starter.java:752)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarte
r.java:282)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
va:175)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
org.eclipse.osgi NLS missing message: ECLIPSE_MISSING_IMPORTED_PACKAGE in: org.e
clipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_MISSING_OPTIONAL_IMPORTED_PACKAGE
in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_MISSING_DYNAMIC_IMPORTED_PACKAGE i
n: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_MISSING_OPTIONAL_REQUIRED_BUNDLE i
n: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_MISSING_REQUIRED_BUNDLE in: org.ec
lipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_MISSING_HOST in: org.eclipse.core.
runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CANNOT_CHANGE_LOCATION in: org.ecl
ipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_BUNDLESTOPPER_CYCLES_FOUND in: org
.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_BUNDLESTOPPER_ERROR_STOPPING_BUNDL
E in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CACHEDMANIFEST_UNEXPECTED_EXCEPTIO
N in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: fileManager_cannotLock in: org.eclipse.cor
e.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: fileManager_updateFailed in: org.eclipse.c
ore.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: fileManager_illegalInReadOnlyMode in: org.
eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: fileManager_notOpen in: org.eclipse.core.r
untime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_ADAPTOR_ERROR_XML_SERVICE in: org.
eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_ADAPTOR_RUNTIME_ERROR in: org.ecli
pse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_ADAPTOR_EXITING in: org.eclipse.co
re.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_DATA_MANIFEST_NOT_FOUND in: org.ec
lipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONVERTER_ERROR_CONVERTING in: org
.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_DATA_ERROR_READING_MANIFEST in: or
g.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CLASSLOADER_CANNOT_GET_HEADERS in:
 org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CLASSLOADER_CONCURRENT_STARTUP in:
 org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CLASSLOADER_ACTIVATION in: org.ecl
ipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CLASSLOADER_ALREADY_STOPPED in: or
g.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CLASSLOADER_GENERATED_EXCEPTION in
: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_COMMANDS_HEADER in: org.ec
lipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_HELP_DIAG_COMMAND_DESCRIPT
ION in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_HELP_ENABLE_COMMAND_DESCRI
PTION in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_HELP_DISABLE_COMMAND_DESCR
IPTION in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_HELP_LD_COMMAND_DESCRIPTIO
N in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_NO_BUNDLE_SPECIFIED_ERROR
in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_NO_CONSTRAINTS_NO_PLATFORM
_ADMIN_MESSAGE in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessa
ges
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_CANNOT_FIND_BUNDLE_ERROR i
n: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_NO_CONSTRAINTS in: org.ecl
ipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_DIRECT_CONSTRAINTS in: org
.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_LEAF_CONSTRAINTS in: org.e
clipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_BUNDLE_DISABLED_MESSAGE in
: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_DISABLED_COUNT_MESSAGE in:
 org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_DISABLED_BUNDLE_HEADER in:
 org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_DISABLED_BUNDLE_REASON1 in
: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONSOLE_DISABLED_BUNDLE_REASON2 in
: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_ALREADY_RUNNING in: org.ec
lipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_STARTUP_ERROR in: org.ecli
pse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_SHUTDOWN_ERROR in: org.ecl
ipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_ERROR_CHECK_LOG in: org.ec
lipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_NOT_RUNNING in: org.eclips
e.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_ERROR_NO_APPLICATION in: o
rg.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_ROOTS_NOT_RESOLVED in: org
.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_ALL_NOT_RESOLVED in: org.e
clipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_ACTIVE in
: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_RESOLVED
in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_BUNDLE_NOT_FOUND in: org.e
clipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_INVALID_PORT in: org.eclip
se.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_FAILED_FIND in: org.eclips
e.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_FAILED_UNINSTALL in: org.e
clipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_FAILED_INSTALL in: org.ecl
ipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_FAILED_START in: org.eclip
se.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_APP_ERROR in: org.eclipse.
core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_FILEMANAGER_OPEN_ERROR in:
 org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_PROPS_NOT_SET in: org.ecli
pse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: error_badNL in: org.eclipse.core.runtime.i
nternal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: location_cannotLock in: org.eclipse.core.r
untime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: location_cannotLockNIO in: org.eclipse.cor
e.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: location_folderReadOnly in: org.eclipse.co
re.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: location_notSet in: org.eclipse.core.runti
me.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: location_notFileProtocol in: org.eclipse.c
ore.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: location_noLockFile in: org.eclipse.core.r
untime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONVERTER_FILENOTFOUND in: org.ecl
ipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONVERTER_ERROR_CREATING_BUNDLE_MA
NIFEST in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONVERTER_PLUGIN_LIBRARY_IGNORED i
n: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONVERTER_ERROR_PARSING_PLUGIN_MAN
IFEST in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONVERTER_MISSING_ATTRIBUTE in: or
g.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: parse_error in: org.eclipse.core.runtime.i
nternal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: parse_errorNameLineColumn in: org.eclipse.
core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONVERTER_NO_SAX_FACTORY in: org.e
clipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_CONVERTER_PARSE_UNKNOWNTOP_ELEMENT
 in: org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_PLUGIN_EXTRACTION_PROBLEM in: org.
eclipse.core.runtime.internal.adaptor.EclipseAdaptorMessages
org.eclipse.osgi NLS missing message: ECLIPSE_STARTUP_STARTUP_ERROR in: org.ecli
pse.core.runtime.internal.adaptor.EclipseAdaptorMessages
java.lang.NullPointerException
        at org.eclipse.osgi.baseadaptor.BaseAdaptor.initializeStorage(BaseAdapto
r.java:114)
        at org.eclipse.osgi.framework.internal.core.Framework.initialize(Framewo
rk.java:185)
        at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.j
ava:157)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarte
r.java:286)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
va:175)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1407)


Reproducible: Always

Steps to Reproduce:
1. Download eclipse-SDK-I20100608-0911-win32.zip from http://download.eclipse.org/eclipse/downloads/drops/I20100608-0911/index.php
2. Uzip the file to 'c:/tmp/eclipse!' or any folder with '!' character in the path.
3. Try to launch eclipse.exe or eclipsec.exe
Comment 1 Remy Suen CLA 2010-06-11 19:21:31 EDT
*** Bug 316661 has been marked as a duplicate of this bug. ***
Comment 2 Prakash Rangaraj CLA 2010-06-11 23:44:04 EDT
Correct me if I'm wrong, but Java uses the ! to find nested jar. So if you have that char in a path, Java might be trying to resolve the rest of the path as a nested jar.

What happens when you the ! char in the classpath of a normal java application?
Comment 3 Paul Webster CLA 2010-06-14 08:28:12 EDT
Is this something we can protect against (transform the path before using it as part of a URL)?

PW
Comment 4 Thomas Watson CLA 2010-06-14 09:54:56 EDT
(In reply to comment #3)
> Is this something we can protect against (transform the path before using it as
> part of a URL)?
> 
> PW

I'm not sure there is much we can do in this case unless we want to re-implement the URL class loader used to load the framework.

*** This bug has been marked as a duplicate of bug 3109 ***