pmd/pmd-eclipse-plugin

SWTError: No more handles

adangel opened this issue · 0 comments

The plugin registers a resource change listener and tries to update the ViolationOverview view.
While refreshing the view, always a new context menu is created, eventually leading to "no more handles":

Caused by: org.eclipse.swt.SWTError: No more handles
       at org.eclipse.swt.SWT.error(SWT.java:4559)
       at org.eclipse.swt.SWT.error(SWT.java:4448)
       at org.eclipse.swt.SWT.error(SWT.java:4419)
       at org.eclipse.swt.widgets.Widget.error(Widget.java:482)
       at org.eclipse.swt.widgets.Menu.createHandle(Menu.java:466)
       at org.eclipse.swt.widgets.Menu.createWidget(Menu.java:554)
       at org.eclipse.swt.widgets.Menu.<init>(Menu.java:226)
       at org.eclipse.swt.widgets.Menu.<init>(Menu.java:148)
       at org.eclipse.swt.widgets.Menu.<init>(Menu.java:107)
       at org.eclipse.jface.action.MenuManager.createContextMenu(MenuManager.java:184)
       at net.sourceforge.pmd.eclipse.ui.views.ViolationOverviewMenuManager.createContextMenu(ViolationOverviewMenuManager.java:159)
       at net.sourceforge.pmd.eclipse.ui.views.ViolationOverview.refreshMenu(ViolationOverview.java:452)
       at net.sourceforge.pmd.eclipse.ui.views.ViolationOverview.refresh(ViolationOverview.java:445)
       at net.sourceforge.pmd.eclipse.ui.views.ViolationOverviewContentProvider.updateViewer(ViolationOverviewContentProvider.java:570)
       at net.sourceforge.pmd.eclipse.ui.views.ViolationOverviewContentProvider$1.run(ViolationOverviewContentProvider.java:341)
       at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)
       at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:144)
       at org.eclipse.swt.widgets.Display.syncExec(Display.java:4889)
       at net.sourceforge.pmd.eclipse.ui.views.ViolationOverviewContentProvider.resourceChanged(ViolationOverviewContentProvider.java:339)
       at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:299)
       at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
       at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:289)
       at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:152)
       at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:374)
       at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1469)
       at org.eclipse.core.internal.resources.Marker.setAttribute(Marker.java:271)