Bug 120585 [clean up] needs two invocations until all clean ups are performed
org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/JavaElementLabels.java
buf.append(path.removeLastSegments(1).toOSString());
						}
					} else {
						buf.append(path.toString());
					}
				} else {
					buf.append(path.toString());
				}
				buf.append(CONCAT_STRING);
			}
			if (root.isExternal())
				buf.append(root.getPath().toOSString());
			else
				buf.append(root.getPath().makeRelative().toString());
			return true;
		} catch (JavaModelException e) {
			JavaPlugin.log(e); 
		}
		return false;
	}
	private static void getExternalArchiveLabel(IPackageFragmentRoot root, long flags, StringBuffer buf) {
		IPath path= root.getPath();
		if (getFlag(flags, REFERENCED_ROOT_POST_QUALIFIED)) {
			int segements= path.segmentCount();
			if (segements > 0) {
				buf.append(path.segment(segements - 1));
				if (segements > 1 || path.getDevice() != null) {
					buf.append(CONCAT_STRING);
					buf.append(path.removeLastSegments(1).toOSString());
				}