Bug 67090 JDT UI breaks api rules by implementing SourceRange [refactoring]
3.0rc1 jdt ui has an implementation of ISourceRange (because the one from jcore is internal and we did not feel like creating a n-th class for the same thing: pair of ints). however, according to the API ISourceRange should not be implemented
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaReplaceWithEditionActionImpl.java
public void run(ISelection selection) {
		
		String errorTitle= CompareMessages.getString("ReplaceFromHistory.title"); 
		String errorMessage= CompareMessages.getString("ReplaceFromHistory.internalErrorMessage"); 
		Shell shell= getShell();
		
		IMember input= getEditionElement(selection);
		if (input == null) {
			String invalidSelectionMessage= CompareMessages.getString("ReplaceFromHistory.invalidSelectionMessage"); 
			MessageDialog.openInformation(shell, errorTitle, invalidSelectionMessage);
			return;
		}
		
		IFile file= getFile(input);
		if (file == null) {
			MessageDialog.openError(shell, errorTitle, errorMessage);
			return;
		}
										
		boolean inEditor= beingEdited(file);
		if (inEditor)
			input= (IMember) getWorkingCopy(input);
		
		TextBuffer buffer= null;
		try {
			buffer= TextBuffer.acquire(file);
			
			if (! buffer.makeCommittable(shell).isOK())
				return;
			ResourceBundle bundle= ResourceBundle.getBundle(BUNDLE_NAME);