diff options
| -rw-r--r-- | packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java index 999d82d592ea..6140428d353f 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java +++ b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java @@ -838,9 +838,15 @@ public final class PageContentRepository { try (ParcelFileDescriptor source = pipe[0]) { try (ParcelFileDescriptor destination = pipe[1]) { - - mRenderer.renderPage(mPageIndex, bitmap.getWidth(), bitmap.getHeight(), - mRenderSpec.printAttributes, destination); + synchronized (mLock) { + if (mRenderer != null) { + mRenderer.renderPage(mPageIndex, bitmap.getWidth(), + bitmap.getHeight(), mRenderSpec.printAttributes, + destination); + } else { + throw new IllegalStateException("Renderer is disconnected"); + } + } } BitmapSerializeUtils.readBitmapPixels(bitmap, source); |