Bug 49182 What should canceling setRawClasspath do ?
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/BuildPathsPropertyPage.java
PreferencesMessages.getString("BuildPathsPropertyPage.unsavedchanges.button.ignore") 
					};
					MessageDialog dialog= new MessageDialog(getShell(), title, null, message, MessageDialog.QUESTION, buttonLabels, 0);
					int res= dialog.open();
					if (res == 0) {
						performOk();
					} else if (res == 1) {
						fBuildPathsBlock.init(JavaCore.create(getProject()), null, null);
					} else {
						fBuildPathsBlock.initializeTimeStamps();
					}
				}
			} else {
				if (!fBuildPathsBlock.hasChangesInDialog() && fBuildPathsBlock.hasChangesInClasspathFile()) {
					fBuildPathsBlock.init(JavaCore.create(getProject()), null, null);
				}
			}
		}
		super.setVisible(visible);
	}
	
	
	/*
	 * Content for valid projects.
	 */
	private Control createWithJava(Composite parent, IProject project) {
		fBuildPathsBlock= new BuildPathsBlock(this, getSettings().getInt(INDEX));
		fBuildPathsBlock.init(JavaCore.create(project), null, null);
		return fBuildPathsBlock.createControl(parent);
	}