return asyncChanges.isEmpty() ? null : (IProject) asyncChanges.remove(asyncChanges.size() - 1);
}
}
protected IStatus run(IProgressMonitor monitor) {
MultiStatus result = new MultiStatus(JSPFContentProperties.JSPCORE_ID, IResourceStatus.FAILED_SETTING_CHARSET, JSPCoreMessages.JSPFContentPropertiesManager_Updating, null);
monitor = monitor == null ? new NullProgressMonitor() : monitor;
try {
monitor.beginTask(JSPCoreMessages.JSPFContentPropertiesManager_Updating, asyncChanges.size());
try {
IProject next;
while ((next = getNextChange()) != null) {
// just exit if the system is shutting down or has
// been shut down
// it is too late to change the workspace at this
// point anyway
if (Platform.getBundle("org.eclipse.osgi").getState() != Bundle.ACTIVE) //$NON-NLS-1$
return Status.OK_STATUS;
try {
// save the preferences nodes
if (next.isAccessible()) {
// save content type preferences
Preferences projectPrefs = JSPFContentProperties.getPreferences(next, JSPFContentProperties.JSPCONTENTTYPE, false);
if (projectPrefs != null)
projectPrefs.flush();
// save language preferences
projectPrefs = JSPFContentProperties.getPreferences(next, JSPFContentProperties.JSPLANGUAGE, false);
if (projectPrefs != null)
projectPrefs.flush();
}
}
catch (BackingStoreException e) {
// we got an error saving
String detailMessage = NLS.bind(JSPCoreMessages.JSPFContentPropertiesManager_Problems_Updating, next.getFullPath());
result.add(new Status(1 << (IResourceStatus.FAILED_SETTING_CHARSET % 100 / 33), ResourcesPlugin.PI_RESOURCES, IResourceStatus.FAILED_SETTING_CHARSET, detailMessage, e));
}
}
monitor.worked(1);
}
catch (OperationCanceledException e) {