diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java index f3140ac7..f3300011 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java @@ -96,6 +96,8 @@ public abstract class CameraIntegrationTest extends BaseTest { rule.getActivity().inflate(camera); // Ensure that controller exceptions are thrown on this thread (not on the UI thread). + // TODO this makes debugging for wrong tests very hard, as we don't get the exception + // unless waitForUiException() is called. uiExceptionOp = new Op<>(true); WorkerHandler crashThread = WorkerHandler.get("CrashThread"); crashThread.getThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java index 306954a3..964eb976 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java @@ -181,6 +181,9 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv mRepeatingRequestBuilder.addTarget(mFrameProcessingSurface); } for (Surface extraSurface : extraSurfaces) { + if (extraSurface == null) { + throw new IllegalArgumentException("Should not add a null surface."); + } mRepeatingRequestBuilder.addTarget(extraSurface); } }