Directory Studio
  1. Directory Studio
  2. DIRSTUDIO-223

NullPointerException raised when adding values in the New Entry Wizard

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.1.0
    • Component/s: studio-ldapbrowser
    • Labels:
      None

      Description

      This bug does not affect 1.0.1 but the current trunk only.
      A NPE is raised when adding values in the New Entry Wizard.

      Here's the stacktrace:
      !ENTRY org.eclipse.jface 4 2 2007-10-11 13:08:38.037
      !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
      !STACK 0
      java.lang.NullPointerException
      at org.apache.directory.studio.ldapbrowser.core.jobs.AbstractEclipseJob.getLockIdentifier(AbstractEclipseJob.java:259)
      at org.apache.directory.studio.ldapbrowser.core.jobs.AbstractEclipseJob.getLockIdentifier(AbstractEclipseJob.java:265)
      at org.apache.directory.studio.ldapbrowser.core.jobs.AbstractEclipseJob.getLockIdentifiers(AbstractEclipseJob.java:234)
      at org.apache.directory.studio.ldapbrowser.core.jobs.AbstractEclipseJob.shouldSchedule(AbstractEclipseJob.java:163)
      at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:367)
      at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:435)
      at org.apache.directory.studio.ldapbrowser.core.jobs.AbstractEclipseJob.execute(AbstractEclipseJob.java:152)
      at org.apache.directory.studio.valueeditors.ValueEditorManager.modifyValue(ValueEditorManager.java:619)
      at org.apache.directory.studio.ldapbrowser.common.widgets.entryeditor.EntryEditorWidgetCellModifier.modify(EntryEditorWidgetCellModifier.java:143)
      at org.eclipse.jface.viewers.ColumnViewer$2.setValue(ColumnViewer.java:265)
      at org.eclipse.jface.viewers.EditingSupport.saveCellEditorValue(EditingSupport.java:109)
      at org.eclipse.jface.viewers.ColumnViewerEditor.saveEditorValue(ColumnViewerEditor.java:375)
      at org.eclipse.jface.viewers.ColumnViewerEditor.applyEditorValue(ColumnViewerEditor.java:266)
      at org.eclipse.jface.viewers.ColumnViewerEditor$1.applyEditorValue(ColumnViewerEditor.java:136)
      at org.eclipse.jface.viewers.CellEditor$1.run(CellEditor.java:305)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
      at org.eclipse.core.runtime.Platform.run(Platform.java:857)
      at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
      at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:193)
      at org.eclipse.jface.viewers.CellEditor.fireApplyEditorValue(CellEditor.java:303)
      at org.eclipse.jface.viewers.TextCellEditor.handleDefaultSelection(TextCellEditor.java:294)
      at org.eclipse.jface.viewers.TextCellEditor$1.widgetDefaultSelected(TextCellEditor.java:147)
      at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:112)
      at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1101)
      at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3319)
      at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
      at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
      at org.eclipse.jface.window.Window.open(Window.java:796)
      at org.apache.directory.studio.ldapbrowser.ui.actions.NewEntryAction.run(NewEntryAction.java:98)
      at org.apache.directory.studio.ldapbrowser.common.actions.proxy.BrowserActionProxy.run(BrowserActionProxy.java:253)
      at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
      at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:545)
      at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
      at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
      at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1101)
      at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3319)
      at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
      at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
      at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
      at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
      at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
      at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
      at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
      at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
      at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
      at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)
      at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
      at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
      at org.eclipse.equinox.launcher.Main.main(Main.java:1144)

        Activity

        Hide
        Pierre-Arnaud Marcelot added a comment -

        Perfect, thanks Stefan!

        Show
        Pierre-Arnaud Marcelot added a comment - Perfect, thanks Stefan!
        Hide
        Stefan Seelmann added a comment -

        Thanks Pierre-Arnaud for the fix. I just changed the return value null to the empty string to avoid another potential NPE.

        http://svn.apache.org/viewvc?rev=583951&view=rev

        Show
        Stefan Seelmann added a comment - Thanks Pierre-Arnaud for the fix. I just changed the return value null to the empty string to avoid another potential NPE. http://svn.apache.org/viewvc?rev=583951&view=rev
        Hide
        Pierre-Arnaud Marcelot added a comment -

        Fixed at commit 583777.

        http://svn.apache.org/viewvc?rev=583777&view=rev

        Stefan, Could you please verify I'm not doing something wrong with this fix ?

        The problem was caused because in the case of the NewEntryWizard, a DummyConnection is created and used.
        But this DummyConnection does not have any Connection, so, getting the Host and Port of the Connection was causing a NPE.

        I've just added a 'instanceof' test, to get rid of this problem.

        Tell me if this causes a problem somewhere (I think it shouldn't).

        Thanks.

        Show
        Pierre-Arnaud Marcelot added a comment - Fixed at commit 583777. http://svn.apache.org/viewvc?rev=583777&view=rev Stefan, Could you please verify I'm not doing something wrong with this fix ? The problem was caused because in the case of the NewEntryWizard, a DummyConnection is created and used. But this DummyConnection does not have any Connection, so, getting the Host and Port of the Connection was causing a NPE. I've just added a 'instanceof' test, to get rid of this problem. Tell me if this causes a problem somewhere (I think it shouldn't). Thanks.

          People

          • Assignee:
            Pierre-Arnaud Marcelot
            Reporter:
            Pierre-Arnaud Marcelot
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development