Bug 97936 [build path] build path page overwrites changes in classpath
I have plugin which contribute page into the Project Properties Dialog (java project). In this page IJavaProject.setRawClasspath() called for current project. I do the following steps: 1. Open Project Properties Dialog 2. Select Java Build Path page. Do nothing with it. 3. Select "MyPage". 4. Do something which calls setRawClasspath(). (file .classpath updated with new values!) 5. Press OK. Dialog closed. oops! File .classpath updated again with old values. It reproduced with M7 and M6.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/BuildPathsPropertyPage.java
public void createControl(Composite parent) {
		super.createControl(parent);
		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaHelpContextIds.BUILD_PATH_PROPERTY_PAGE);
	}	
	
	private IDialogSettings getSettings() {
		IDialogSettings javaSettings= JavaPlugin.getDefault().getDialogSettings();
		IDialogSettings pageSettings= javaSettings.getSection(PAGE_SETTINGS);
		if (pageSettings == null) {
			pageSettings= javaSettings.addNewSection(PAGE_SETTINGS);
			pageSettings.put(INDEX, 3);
		}
		return pageSettings;
	}
	
	/* (non-Javadoc)
	 * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
	 */
	public void setVisible(boolean visible) {
		if (fBuildPathsBlock != null) {
			if (!visible) {
				if (fBuildPathsBlock.hasChangesInDialog()) {
					String title= PreferencesMessages.BuildPathsPropertyPage_unsavedchanges_title; 
					String message= PreferencesMessages.BuildPathsPropertyPage_unsavedchanges_message; 
					String[] buttonLabels= new String[] {
							PreferencesMessages.BuildPathsPropertyPage_unsavedchanges_button_save, 
							PreferencesMessages.BuildPathsPropertyPage_unsavedchanges_button_discard, 
							PreferencesMessages.BuildPathsPropertyPage_unsavedchanges_button_ignore
					};
					MessageDialog dialog= new MessageDialog(getShell(), title, null, message, MessageDialog.QUESTION, buttonLabels, 0);