Failed to open image view (Sentinel 2)

Very often it happens that I cannot load the Sentinel 2 image (RGB or single band) and I get the following error: Failed to open image view. This is already quite annoying because I often get this error and most often reinstalling helps. However, this only works for a while. I have auto update turned on so the snap is always up to date.

java.lang.NullPointerException
	at org.esa.s2tbx.dataio.openjpeg.OpenJpegExecRetriever.findOpenJpegExecPath(OpenJpegExecRetriever.java:96)
	at org.esa.s2tbx.dataio.openjpeg.OpenJpegExecRetriever.getOpenJp2(OpenJpegExecRetriever.java:67)
	at org.esa.s2tbx.dataio.jp2.internal.JP2TileOpImage.<init>(JP2TileOpImage.java:102)
	at org.esa.s2tbx.dataio.jp2.internal.JP2TileOpImage.create(JP2TileOpImage.java:133)
	at org.esa.s2tbx.dataio.s2.ortho.Sentinel2OrthoProductReader$BandL1cSceneMultiLevelSource.createImage(Sentinel2OrthoProductReader.java:1393)
	at com.bc.ceres.glevel.support.AbstractMultiLevelSource.getImage(AbstractMultiLevelSource.java:65)
	at com.bc.ceres.glevel.support.DefaultMultiLevelImage.getImage(DefaultMultiLevelImage.java:76)
	at com.bc.ceres.glevel.support.GenericMultiLevelSource.createImage(GenericMultiLevelSource.java:51)
	at com.bc.ceres.glevel.support.AbstractMultiLevelSource.getImage(AbstractMultiLevelSource.java:65)
	at com.bc.ceres.glevel.support.DefaultMultiLevelImage.getImage(DefaultMultiLevelImage.java:76)
	at org.esa.snap.core.image.ImageManager.getLevelImage(ImageManager.java:795)
	at org.esa.snap.core.image.ImageManager.getGeophysicalImage(ImageManager.java:115)
	at org.esa.snap.core.datamodel.StxFactory.accumulate(StxFactory.java:289)
	at org.esa.snap.core.datamodel.StxFactory.create(StxFactory.java:200)
	at org.esa.snap.core.datamodel.StxFactory.create(StxFactory.java:274)
	at org.esa.snap.core.datamodel.RasterDataNode.computeStxImpl(RasterDataNode.java:2453)
	at org.esa.snap.core.datamodel.Band.computeStxImpl(Band.java:507)
	at org.esa.snap.core.datamodel.RasterDataNode.getStx(RasterDataNode.java:2420)
	at org.esa.snap.core.datamodel.RasterDataNode.createDefaultImageInfo(RasterDataNode.java:1827)
	at org.esa.snap.core.datamodel.Band.createDefaultImageInfo(Band.java:486)
	at org.esa.snap.core.datamodel.RasterDataNode.getImageInfo(RasterDataNode.java:1809)
	at org.esa.snap.core.datamodel.RasterDataNode.getImageInfo(RasterDataNode.java:1792)
	at org.esa.snap.core.image.ImageManager.prepareImageInfos(ImageManager.java:834)
	at org.esa.snap.core.image.ColoredBandImageMultiLevelSource.create(ColoredBandImageMultiLevelSource.java:51)
	at org.esa.snap.core.image.ColoredBandImageMultiLevelSource.create(ColoredBandImageMultiLevelSource.java:47)
	at org.esa.snap.core.image.ColoredBandImageMultiLevelSource.create(ColoredBandImageMultiLevelSource.java:41)
	at org.esa.snap.ui.product.ProductSceneImage.<init>(ProductSceneImage.java:69)
	at org.esa.snap.rcp.actions.window.OpenImageViewAction.createProductSceneImage(OpenImageViewAction.java:271)
	at org.esa.snap.rcp.actions.window.OpenImageViewAction.access$100(OpenImageViewAction.java:69)
	at org.esa.snap.rcp.actions.window.OpenImageViewAction$1.doInBackground(OpenImageViewAction.java:236)
	at org.esa.snap.rcp.actions.window.OpenImageViewAction$1.doInBackground(OpenImageViewAction.java:213)
	at com.bc.ceres.swing.progress.ProgressMonitorSwingWorker.doInBackground(ProgressMonitorSwingWorker.java:55)
	at javax.swing.SwingWorker$1.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at javax.swing.SwingWorker.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused: java.util.concurrent.ExecutionException
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at javax.swing.SwingWorker.get(Unknown Source)
[catch] at org.esa.snap.rcp.actions.window.OpenImageViewAction$1.done(OpenImageViewAction.java:221)
	at javax.swing.SwingWorker$5.run(Unknown Source)
	at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
	at sun.swing.AccumulativeRunnable.run(Unknown Source)
	at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
	at javax.swing.Timer.fireActionPerformed(Unknown Source)
	at javax.swing.Timer$DoPostEvent.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)