Bug 343634 [Compatibility] IllegalArgumentException (null argument) in WorkbenchPage.installAreaDropSupport() when not calling configureEditorAreaDropListener() in preWindowOpen()
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java index 2d55f95..8c9c666 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
@@ -73,6 +73,7 @@ import org.eclipse.swt.custom.BusyIndicator; import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.DropTarget; +import org.eclipse.swt.dnd.DropTargetListener; import org.eclipse.swt.program.Program; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -2388,10 +2389,13 @@ private void installAreaDropSupport(Control control) { if (!dndSupportInstalled) { WorkbenchWindowConfigurer configurer = legacyWindow.getWindowConfigurer(); - DropTarget dropTarget = new DropTarget(control, DND.DROP_DEFAULT | DND.DROP_COPY - | DND.DROP_LINK); - dropTarget.setTransfer(configurer.getTransfers()); - dropTarget.addDropListener(configurer.getDropTargetListener()); + DropTargetListener dropTargetListener = configurer.getDropTargetListener(); + if (dropTargetListener != null) { + DropTarget dropTarget = new DropTarget(control, DND.DROP_DEFAULT | DND.DROP_COPY + | DND.DROP_LINK); + dropTarget.setTransfer(configurer.getTransfers()); + dropTarget.addDropListener(dropTargetListener); + } dndSupportInstalled = true; } }