Bug 98104 Javadoc locations in archives should correctly handle ! in path
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/CPListLabelProvider.java
}
			} else {
				arg= notAvailable;
			}
			return Messages.format(NewWizardMessages.CPListLabelProvider_source_attachment_label, new String[] { arg }); 
		} else if (key.equals(CPListElement.JAVADOC)) {
			String arg= null;
			String str= (String) attrib.getValue();
			if (str != null) {
				String prefix= JavaDocLocations.ARCHIVE_PREFIX;
				if (str.startsWith(prefix)) {
					int sepIndex= str.lastIndexOf('!');
					if (sepIndex == -1) {
						arg= str.substring(prefix.length());
					} else {
						String archive= str.substring(prefix.length(), sepIndex);
						String root= str.substring(sepIndex + 1);
						if (root.length() > 0 && !root.equals(String.valueOf('/'))) {
							arg= Messages.format(NewWizardMessages.CPListLabelProvider_twopart, new String[] { archive, root }); 
						} else {
							arg= archive;
						}
					}
				} else {
					arg= str;
				}
			} else {
				arg= notAvailable;
			}
			return Messages.format(NewWizardMessages.CPListLabelProvider_javadoc_location_label, new String[] { arg });