From 9e795e19c7f900fb2636c5dff3ba30098da65f1b Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Wed, 3 Sep 2014 14:27:41 -0700 Subject: [PATCH] Unregister from the remote renderer only if bound. bug:8213791 Change-Id: Ia9efa33331437c4db447acf0c510d4cb4932a593 --- .../android/printspooler/model/PageContentRepository.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java index cd2ccbdff9450..06cba2143cf3b 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java +++ b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java @@ -451,6 +451,8 @@ public final class PageContentRepository { @GuardedBy("mLock") private IPdfRenderer mRenderer; + private boolean mBoundToService; + public AsyncRenderer(Context context, OnMalformedPdfFileListener malformedPdfFileListener) { mContext = context; mOnMalformedPdfFileListener = malformedPdfFileListener; @@ -463,6 +465,7 @@ public final class PageContentRepository { @Override public void onServiceConnected(ComponentName name, IBinder service) { + mBoundToService = true; synchronized (mLock) { mRenderer = IPdfRenderer.Stub.asInterface(service); mLock.notifyAll(); @@ -559,7 +562,10 @@ public final class PageContentRepository { @Override public void onPostExecute(Void result) { - mContext.unbindService(AsyncRenderer.this); + if (mBoundToService) { + mBoundToService = false; + mContext.unbindService(AsyncRenderer.this); + } mPageContentCache.invalidate(); mPageContentCache.clear(); }