[72689] adopt long-running version of IFile#setCharset
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/changes/CreateFileChange.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/changes/CreateFileChange.java
index ae3cd41..1b63412 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/changes/CreateFileChange.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/changes/CreateFileChange.java
@@ -86,7 +86,7 @@
 
 		InputStream is= null;
 		try {
-			pm.beginTask(NLSChangesMessages.getString("createFile.creating_resource"), 2); //$NON-NLS-1$
+			pm.beginTask(NLSChangesMessages.getString("createFile.creating_resource"), 3); //$NON-NLS-1$
 
 			initializeEncoding();
 			IFile file= getOldFile(new SubProgressMonitor(pm, 1));
@@ -94,13 +94,17 @@
 				CompositeChange composite= new CompositeChange(getName());
 				composite.add(new DeleteFileChange(file));
 				composite.add(new CreateFileChange(fPath, fSource, fEncoding, fExplicitEncoding));
-				return composite.perform(pm);
+				pm.worked(1);
+				return composite.perform(new SubProgressMonitor(pm, 1));
 			} else {
 				try {
 					is= new ByteArrayInputStream(fSource.getBytes(fEncoding));
-					file.create(is, false, pm);
-					if (fExplicitEncoding)
-						file.setCharset(fEncoding);
+					file.create(is, false, new SubProgressMonitor(pm, 1));
+					if (fExplicitEncoding) {
+						file.setCharset(fEncoding, new SubProgressMonitor(pm, 1));
+					} else {
+						pm.worked(1);
+					}
 					return new DeleteFileChange(file);
 				} catch (UnsupportedEncodingException e) {
 					throw new JavaModelException(e, IJavaModelStatusConstants.IO_EXCEPTION);