for (int m = 0; m < configurationElements.length; m++) {
final IConfigurationElement member = configurationElements[m];
try {
// The only required attribute is "class"
boolean sync = (member.getAttribute(ASYNCH_ATTRIBUTE) == null);
IECFStart clazz = (IECFStart) member.createExecutableExtension(CLASS_ATTRIBUTE);
// Create job to do start, and schedule
if (sync) {
IStatus result = null;
try {
result = clazz.run(new NullProgressMonitor());
} catch (final Throwable e) {
final String message = "startup extension error"; //$NON-NLS-1$
logException(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, message, e), message, e);
}
if (result != null && !result.isOK())
logException(result, result.getMessage(), result.getException());
} else {
final ECFStartJob job = new ECFStartJob(clazz.getClass().getName(), clazz);
job.schedule();
}
} catch (final CoreException e) {
logException(e.getStatus(), method, e);
} catch (final Exception e) {