Project: JDT
Bug 379525 [api][implementation] get rid of illegal unencoded URLs
Reported: 2012-05-15 06:15:03 | Status: resolved fixed

JavaDocLocations and clients have a fundamental problem: They deal with illegal URLs for which URL#toURI() throws an exception. The problem is that they use an unescaped and unencoded form of URLs. This format is lossy, since it is not possible to later distinguish characters like #!? that can occur in file system paths from characters that delimit the components of a URL (path, ref, query). APIs in JavaUI and stored data in classpath attribute and persistent project properties are also affected. If the fix also touches the storage format, then it needs a migration story. No migration story is necessary for API clients who implemented workarounds for the bad URL format (that's their fault).

Files changed in fix:
org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/javadoc/JavaDocLocations.java org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/RecentSettingsStore.java org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationBlock.java org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementLinks.java org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/BuildPathDialogAccess.java