Bug 66340 NPE adding user library to classpath [build path]
I20040609 I created a user library and then attempted to add it to a runtime classpath. !ENTRY org.eclipse.ui 4 4 Jun 09, 2004 10:53:10.624 !MESSAGE Unhandled event loop exception !ENTRY org.eclipse.ui 4 0 Jun 09, 2004 10:53:10.634 !MESSAGE java.lang.NullPointerException !STACK 0 java.lang.NullPointerException at java.lang.Throwable.<init>(Throwable.java) at java.lang.NullPointerException.<init>(NullPointerException.java:61) at org.eclipse.jdt.core.JavaCore.setClasspathContainer (JavaCore.java:3355) at org.eclipse.jdt.internal.core.UserLibraryClasspathContainerInitializer.initiali ze(UserLibraryClasspathContainerInitializer.java:35) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer (JavaModelManager.java:1248) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer (JavaModelManager.java) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java) at org.eclipse.jdt.internal.ui.wizards.buildpaths.UserLibraryWizardPage.updateLibr aryList(UserLibraryWizardPage.java:113) at org.eclipse.jdt.internal.ui.wizards.buildpaths.UserLibraryWizardPage.setSelecti on(UserLibraryWizardPage.java:264) at org.eclipse.jdt.internal.ui.wizards.buildpaths.ClasspathContainerWizard.getCont ainerPage(ClasspathContainerWizard.java:162) at org.eclipse.jdt.internal.ui.wizards.buildpaths.ClasspathContainerWizard.getNext Page(ClasspathContainerWizard.java:174) at org.eclipse.jface.wizard.WizardPage.getNextPage(WizardPage.java:163) at org.eclipse.jface.wizard.WizardDialog.nextPressed (WizardDialog.java:674) at org.eclipse.jface.wizard.WizardDialog.buttonPressed (WizardDialog.java:300) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:506) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java) at org.eclipse.jface.window.Window.runEventLoop(Window.java) at org.eclipse.jface.window.Window.open(Window.java:648) at org.eclipse.jdt.internal.ui.wizards.buildpaths.ClasspathContainerWizard.openWiz ard(ClasspathContainerWizard.java:230) at org.eclipse.jdt.ui.wizards.BuildPathDialogAccess.chooseContainerEntries (BuildPathDialogAccess.java:230) at org.eclipse.jdt.internal.debug.ui.actions.AddLibraryAction.run (AddLibraryAction.java:39) at org.eclipse.jdt.internal.debug.ui.launcher.RuntimeClasspathAdvancedDialog.okPre ssed(RuntimeClasspathAdvancedDialog.java:156) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:365) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:506) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java) at org.eclipse.jface.window.Window.runEventLoop(Window.java) at org.eclipse.jface.window.Window.open(Window.java:648) at org.eclipse.jdt.internal.debug.ui.actions.AddAdvancedAction.run (AddAdvancedAction.java:39) at org.eclipse.jdt.internal.debug.ui.actions.RuntimeClasspathAction$1.widgetSelect ed(RuntimeClasspathAction.java:137) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java) at org.eclipse.jface.window.Window.runEventLoop(Window.java) at org.eclipse.jface.window.Window.open(Window.java:648) at org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.o pen(LaunchConfigurationsDialog.java:419) at org.eclipse.debug.ui.DebugUITools$1.run(DebugUITools.java:381) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java) at org.eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup (DebugUITools.java:385) at org.eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup (DebugUITools.java:327) at org.eclipse.debug.ui.actions.OpenLaunchDialogAction.run (OpenLaunchDialogAction.java:80) at org.eclipse.debug.ui.actions.OpenLaunchDialogAction.run (OpenLaunchDialogAction.java:99) at org.eclipse.ui.internal.PluginAction.runWithEvent (PluginAction.java:276) at org.eclipse.ui.internal.WWinPluginAction.runWithEvent (WWinPluginAction.java:206) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:915) at org.eclipse.jface.action.ActionContributionItem.access$2 (ActionContributionItem.java) at org.eclipse.jface.action.ActionContributionItem$7.handleEvent (ActionContributionItem.java) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1362) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1333) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench (Workbench.java:252) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at org.eclipse.ui.internal.ide.IDEApplication.run (IDEApplication.java:96) at org.eclipse.core.internal.runtime.PlatformActivator$1.run (PlatformActivator.java:334) at org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:272) at org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:128) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:85) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:58) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:60) at java.lang.reflect.Method.invoke(Method.java:391) at org.eclipse.core.launcher.Main.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:638) at org.eclipse.core.launcher.Main.main(Main.java:622)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/UserLibraryPreferencePage.java
ArrayList result= new ArrayList(length);
			for (int i= 0; i < length; i++) {
				Node lib= libList.item(i);
				if (!(lib instanceof Element)) {
					continue;
				}
				Element libElement= (Element) lib;
				String name= libElement.getAttribute(TAG_NAME);
				boolean isSystem= Boolean.valueOf(libElement.getAttribute(TAG_SYSTEMLIBRARY)).booleanValue();
				
				CPUserLibraryElement newLibrary= new CPUserLibraryElement(name, isSystem, null);
				result.add(newLibrary);
				
				NodeList archiveList= libElement.getElementsByTagName(TAG_ARCHIVE);
				for (int k= 0; k < archiveList.getLength(); k++) {
					Node archiveNode= archiveList.item(k);
					if (!(archiveNode instanceof Element)) {
						continue;
					}
					Element archiveElement= (Element) archiveNode;
					
					String path= archiveElement.getAttribute(TAG_ARCHIVE_PATH);
					CPListElement newArchive= new CPListElement(newLibrary, null, IClasspathEntry.CPE_LIBRARY, new Path(path), null);
					newLibrary.add(newArchive);
					
					if (archiveElement.hasAttribute(TAG_SOURCEATTACHMENT)) {
						IPath sourceAttach= new Path(archiveElement.getAttribute(TAG_SOURCEATTACHMENT));
						newArchive.setAttribute(CPListElement.SOURCEATTACHMENT, sourceAttach);
					}
					if (archiveElement.hasAttribute(TAG_JAVADOC)) {