Bug 98104 Javadoc locations in archives should correctly handle ! in path
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationBlock.java
private String fInvalidMessage= PreferencesMessages.JavadocConfigurationBlock_InvalidLocation_message; 
		private String fValidMessage= PreferencesMessages.JavadocConfigurationBlock_ValidLocation_message; 
		private String fTitle=  PreferencesMessages.JavadocConfigurationBlock_MessageDialog_title; 
		private String fUnable= PreferencesMessages.JavadocConfigurationBlock_UnableToValidateLocation_message; 
		public void run() {
			URL location= getJavadocLocation();
			if (location == null) {
				MessageDialog.openWarning(fShell, fTitle, fInvalidMessage); 
				return;
			}
			try {
				String protocol = location.getProtocol();
				if (protocol.equals("http") || protocol.equals("jar")) { 
					validateURL(location);
				} else if (protocol.equals("file")) { 
					validateFile(location);
				} else {
					MessageDialog.openWarning(fShell, fTitle, fUnable); 
				}
			} catch (MalformedURLException e) {
				MessageDialog.openWarning(fShell, fTitle, fUnable); 
			}
		}
		
		public void spawnInBrowser(URL url) {
			OpenBrowserUtil.open(url, fShell.getDisplay(), fTitle);
		}
		private void validateFile(URL location) throws MalformedURLException {
			File folder = new File(location.getFile());