Bug 14368 Create getter and setter insert code into read-only file
1. Create a class C as follow: package jp1; public class C { private int id; } 2. Close it and mark it as read only 3. Reopen it and you should not be able to modify anything 4. From the outline view, select "id - int" and right mouse click and select "Create getter and setter". 5. The class becomes package jp1; public class C { private int id; /** * Gets the id. * @return Returns a int */ public int getId() { return id; } /** * Sets the id. * @param id The id to set */ public void setId(int id) { this.id = id; } } and the editor is dirty, but you cannot save it until clear the read-only flag.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/AddGetterSetterAction.java
showError(JavaUIMessages.getString("AddGetterSetterAction.error.actionfailed")); 
					return;
				}
				workingCopyFields= new IField[fields.length];
				for (int i= 0; i < fields.length; i++) {
					IField field= fields[i];
					IField workingCopyField= (IField) JavaModelUtil.findMemberInCompilationUnit(workingCopyCU, field);
					if (workingCopyField == null) {
						showError(JavaUIMessages.getFormattedString("AddGetterSetterAction.error.fieldNotExisting", field.getElementName())); 
						return;
					}
					workingCopyFields[i]= workingCopyField;
				}
			}
			IRequestQuery skipSetterForFinalQuery= skipSetterForFinalQuery();
			IRequestQuery skipReplaceQuery= skipReplaceQuery();
			String[] prefixes= CodeGenerationPreferencePage.getGetterStetterPrefixes();
			String[] suffixes= CodeGenerationPreferencePage.getGetterStetterSuffixes();
			CodeGenerationSettings settings= JavaPreferencesSettings.getCodeGenerationSettings();
		
			AddGetterSetterOperation op= new AddGetterSetterOperation(workingCopyFields, prefixes, suffixes, settings, skipSetterForFinalQuery, skipReplaceQuery);
			ProgressMonitorDialog dialog= new ProgressMonitorDialog(JavaPlugin.getActiveWorkbenchShell());
			dialog.run(false, true, new WorkbenchRunnableAdapter(op));
		
			IMethod[] createdMethods= op.getCreatedAccessors();
			if (createdMethods.length > 0) {
				EditorUtility.revealInEditor(editor, createdMethods[0]);
			}		
		} catch (InvocationTargetException e) {
			JavaPlugin.log(e);