package mesfavoris.internal.bookmarktypes;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchPart;

import mesfavoris.bookmarktype.IBookmarkPropertiesProvider;

public class BookmarkPropertiesProvider implements IBookmarkPropertiesProvider {
	private final List<IBookmarkPropertiesProvider> providers;

	public BookmarkPropertiesProvider(List<IBookmarkPropertiesProvider> providers) {
		this.providers = new ArrayList<IBookmarkPropertiesProvider>(providers);
	}

	@Override
	public void addBookmarkProperties(Map<String, String> bookmarkProperties, IWorkbenchPart part,
			ISelection selection) {
		providers.forEach(p -> p.addBookmarkProperties(bookmarkProperties, part, selection));
	}

}

@@ -134,131 +134,374 @@
 pse.
-jface.viewers.ISelection;%0Aimport org.eclipse.ui.IWorkbenchPart;%0A%0Aimport mesfavoris.bookmarktype.IBookmarkPropertiesProvider
+core.runtime.ISafeRunnable;%0Aimport org.eclipse.core.runtime.SafeRunner;%0Aimport org.eclipse.jface.viewers.ISelection;%0Aimport org.eclipse.ui.IWorkbenchPart;%0Aimport org.eclipse.ui.IWorkbenchWindow;%0A%0Aimport mesfavoris.StatusHelper;%0Aimport mesfavoris.bookmarktype.IBookmarkPropertiesProvider;%0Aimport mesfavoris.bookmarktype.IGotoBookmark;%0Aimport mesfavoris.model.Bookmark
 ;%0A%0Ap
@@ -964,68 +964,533 @@
  -%3E 
-p.addBookmarkProperties(bookmarkProperties, part, selection)
+addBookmarkProperties(p, bookmarkProperties, part, selection));%0A%09%7D%0A%0A%09private void addBookmarkProperties(IBookmarkPropertiesProvider provider, Map%3CString, String%3E bookmarkProperties,%0A%09%09%09IWorkbenchPart part, ISelection selection) %7B%0A%09%09SafeRunner.run(new ISafeRunnable() %7B%0A%0A%09%09%09public void run() throws Exception %7B%0A%09%09%09%09provider.addBookmarkProperties(bookmarkProperties, part, selection);%0A%09%09%09%7D%0A%0A%09%09%09public void handleException(Throwable exception) %7B%0A%09%09%09%09StatusHelper.logError(%22Error adding bookmark properties%22, exception);%0A%09%09%09%7D%0A%09%09%7D
 );%0A%09

Use SafeRunner to get bookmark properties