From c6eaa713a3f5b9337eca60ba2ab570cf6e80c357 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Tue, 26 Jul 2011 10:57:42 -0400 Subject: [PATCH] MediaScanner: Fix problem with duplicate directory entries in the database Bug: 5078643 Change-Id: I8804ff5bbd729f57be7ff0b17a4b134cafe78c18 Signed-off-by: Mike Lockwood --- media/java/android/media/MediaScanner.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index a8ac510259d45..58f9432c4baf9 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -872,10 +872,14 @@ public class MediaScanner values.put(Files.FileColumns.FORMAT, format); } // new file, insert it - if (inserter != null) { - result = inserter.insert(values); - } else { + // We insert directories immediately to ensure they are in the database + // before the files they contain. + // Otherwise we can get duplicate directory entries in the database + // if one of the media FileInserters is flushed before the files table FileInserter + if (inserter == null || entry.mFormat == MtpConstants.FORMAT_ASSOCIATION) { result = mMediaProvider.insert(tableUri, values); + } else { + result = inserter.insert(values); } if (result != null) {