am 13e46665: am 736f5ec4: Merge "Work on issue #3101415: Crespo apps seem to have their UID changed over time." into gingerbread

Merge commit '13e46665ff69c1a37880762d7d611aacdf02dac7'

* commit '13e46665ff69c1a37880762d7d611aacdf02dac7':
  Work on issue #3101415: Crespo apps seem to have their UID changed over time.
This commit is contained in:
Dianne Hackborn
2010-10-18 08:04:47 -07:00
committed by Android Git Automerger
11 changed files with 52 additions and 9 deletions

View File

@@ -3166,6 +3166,7 @@ class ContextImpl extends Context {
return;
}
XmlUtils.writeMapXml(mcr.mapToWriteToDisk, str);
FileUtils.sync(str);
str.close();
setFilePermissionsFromMode(mFile.getPath(), mMode, 0);
FileStatus stat = new FileStatus();

View File

@@ -93,7 +93,22 @@ public class FileUtils
* @return volume ID or -1
*/
public static native int getFatVolumeId(String mountPoint);
/**
* Perform an fsync on the given FileOutputStream. The stream at this
* point must be flushed but not yet closed.
*/
public static boolean sync(FileOutputStream stream) {
try {
if (stream != null) {
stream.getFD().sync();
}
return true;
} catch (IOException e) {
}
return false;
}
// copy a file from srcFile to destFile, return true if succeed, return
// false if fail
public static boolean copyFile(File srcFile, File destFile) {
@@ -120,7 +135,7 @@ public class FileUtils
if (destFile.exists()) {
destFile.delete();
}
OutputStream out = new FileOutputStream(destFile);
FileOutputStream out = new FileOutputStream(destFile);
try {
byte[] buffer = new byte[4096];
int bytesRead;
@@ -128,6 +143,11 @@ public class FileUtils
out.write(buffer, 0, bytesRead);
}
} finally {
out.flush();
try {
out.getFD().sync();
} catch (IOException e) {
}
out.close();
}
return true;