Bug 17149 Libraries-Path in Java Build Path gets broken
eclipse-version: F1, linux-gtk bug: "Libraries-Path" of external JARs in "Java Build Path" gets broken I observed the following bug: 1) Call the "Java Build Path"-Dialog via selecting a project, "Properties" via right mouse button and then "Java Build Path". 2) Enter a library path via "Add External JARs..." and press "OK" Everything is ok so far. 3) Call the "Java Build Path"-Dialog again: The path to the library I entered before is broken and eclipse does not find the library any more. The path in the project's .classpath-file is ok. example: I created the project "dummy". Tried to add the external JAR "jdom.jar" to the Library-Path. jdom.jar resides in the directory "/home/mike/java/workspace/jdom/build". I selected the path as an "external JAR" . The path is shown correctly in the libraries-list. When I called the "Java Build Path"-Dialog again the path listed in the "Java Build Path"-Dialog / "Libraries" is changed to "home/mike/java/workspace/jdom/build/jdom.jar" (without the first slash). When selecting this entry and clicking on "Edit" the path shown in the "Edit Class Folder"-dialog is "mike/java/workspace/jdom/build/jdom.jar" (without "/home/"). After trying to correct the path manually in the "Edit Class Folder"-dialog the path shown in "Java Build Path"-Dialog / "Libraries" is "dummy/home/mike/java/workspace/jdom/build/jdom.jar". My workaround so far is to create variables for each library and to enter the library paths as variables.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
import org.eclipse.ui.dialogs.ISelectionStatusValidator;
import org.eclipse.ui.help.WorkbenchHelp;