code: protected void doSetInput(IEditorInput input) throws CoreException {
  
  		ISourceViewer sourceViewer = getSourceViewer();
  		if (!(sourceViewer instanceof ISourceViewerExtension2)) {
  			setPreferenceStore(createCombinedPreferenceStore(input));
  			internalDoSetInput(input);
  			return;
  		}
  
  		// uninstall & unregister preference store listener
  		getSourceViewerDecorationSupport(sourceViewer).uninstall();
  		((ISourceViewerExtension2) sourceViewer).unconfigure();
  
  		setPreferenceStore(createCombinedPreferenceStore(input));
  
  		// install & register preference store listener
  		sourceViewer.configure(getSourceViewerConfiguration());
  		getSourceViewerDecorationSupport(sourceViewer).install(
  				getPreferenceStore());
  
  		internalDoSetInput(input);
  		// ISourceViewer sourceViewer = super.getSourceViewer();
  		// // if (!(sourceViewer instanceof ISourceViewerExtension2)) {
  		// // //setPreferenceStore(createCombinedPreferenceStore(input));
  		// // internalDoSetInput(input);
  		// // return;
  		// // }
  		//
  		// // uninstall & unregister preference store listener
  		// // getSourceViewerDecorationSupport(sourceViewer).uninstall();
  		// // ((ISourceViewerExtension2)sourceViewer).unconfigure();
  		//
  		// // setPreferenceStore(createCombinedPreferenceStore(input));
  		//
  		// // install & register preference store listener
  		// if (sourceViewer != null)
  		// {
  		// sourceViewer.configure(getSourceViewerConfiguration());
  		// getSourceViewerDecorationSupport(sourceViewer).install(getPreferenceStore());
  		//
  		// internalDoSetInput(input);
  		// }else super.doSetInput(input);
  		//
  	}
docs: /*
  @see AbstractTextEditor#doSetInput