Fixing file descriptor close bug and display refresh bug

Test: ./VtsHalGraphicsComposerV2_2TargetTest
Change-Id: Ib3de65ab33496bb89c708d0b98966b0084f0bd10
diff --git a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2ReadbackTest.cpp b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2ReadbackTest.cpp
index fc32951..229c856 100644
--- a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2ReadbackTest.cpp
+++ b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2ReadbackTest.cpp
@@ -289,8 +289,6 @@
     int32_t fenceHandle;
     mComposerClient->getReadbackBufferFence(mPrimaryDisplay, &fenceHandle);
 
-    base::unique_fd fence(fenceHandle);
-
     // lock buffer
     // Create Rect accessRegion to specify reading the entire buffer
     IMapper::Rect accessRegion;
@@ -299,8 +297,17 @@
     accessRegion.width = info.width;
     accessRegion.height = info.height;
 
-    void* bufData = mGralloc->lock(buffer, info.usage, accessRegion, fence);
+    void* bufData = mGralloc->lock(buffer, info.usage, accessRegion, fenceHandle);
     checkReadbackBuffer(info, stride, bufData, expectedColors);
+    int unlockFence = mGralloc->unlock(buffer);
+
+    if (unlockFence != -1) {
+        close(unlockFence);
+    }
+
+    mWriter->validateDisplay();
+    mWriter->presentDisplay();
+    execute();
 }
 
 }  // anonymous namespace