Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillaryImageInfoDownloadThread.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillaryImageInfoDownloadThread.java	(revision 32979)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillaryImageInfoDownloadThread.java	(revision 32980)
@@ -55,7 +55,6 @@
           this.ex.shutdown();
         JsonArray jsonArr = jsonObj.getJsonArray("ims");
-        JsonObject data;
         for (int i = 0; i < jsonArr.size(); i++) {
-          data = jsonArr.getJsonObject(i);
+          final JsonObject data = jsonArr.getJsonObject(i);
           String key = data.getString("key");
           MapillaryLayer.getInstance().getData().getImages().stream().filter(image -> image instanceof MapillaryImage
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThread.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThread.java	(revision 32979)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThread.java	(revision 32980)
@@ -89,8 +89,8 @@
           jsonobj.getString("key"), jsonobj.getJsonNumber("captured_at")
           .longValue());
-        List<MapillaryImage> finalImages = new ArrayList<>(images);
+
         // Here it gets only those images which are in the downloaded
         // area.
-        finalImages = images.parallelStream().filter(MapillarySequenceDownloadThread::isInside).collect(Collectors.toList());
+        List<MapillaryImage> finalImages = images.parallelStream().filter(MapillarySequenceDownloadThread::isInside).collect(Collectors.toList());
 
         synchronized (MapillarySequenceDownloadThread.class) {
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/AbstractMode.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/AbstractMode.java	(revision 32979)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/AbstractMode.java	(revision 32980)
@@ -22,8 +22,7 @@
  * @author nokutu
  * @see MapillaryLayer
- *
  */
 public abstract class AbstractMode extends MouseAdapter implements
-    ZoomChangeListener {
+  ZoomChangeListener {
 
   private static final int DOWNLOAD_COOLDOWN = 2000;
@@ -46,5 +45,5 @@
       double dist = clickPoint.distanceSq(imagePoint);
       if (minDistance > dist && clickPoint.distance(imagePoint) < snapDistance
-          && image.isVisible()) {
+        && image.isVisible()) {
         minDistance = dist;
         closest = image;
@@ -58,6 +57,5 @@
    *
    * @param g {@link Graphics2D} used for painting
-   * @param mv
-   *          The object that can translate GeoPoints to screen coordinates.
+   * @param mv The object that can translate GeoPoints to screen coordinates.
    * @param box Area where painting is going to be performed
    */
@@ -92,5 +90,5 @@
       while (true) {
         if (this.moved
-            && Calendar.getInstance().getTimeInMillis() - this.lastDownload >= DOWNLOAD_COOLDOWN) {
+          && Calendar.getInstance().getTimeInMillis() - this.lastDownload >= DOWNLOAD_COOLDOWN) {
           this.lastDownload = Calendar.getInstance().getTimeInMillis();
           MapillaryDownloader.completeView();
@@ -98,10 +96,8 @@
           MapillaryData.dataUpdated();
         }
-        synchronized (this) {
-          try {
-            Thread.sleep(100);
-          } catch (InterruptedException e) {
-            return;
-          }
+        try {
+          Thread.sleep(100);
+        } catch (InterruptedException e) {
+          return;
         }
       }
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/oauth/UploadUtils.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/oauth/UploadUtils.java	(revision 32979)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/oauth/UploadUtils.java	(revision 32980)
@@ -145,5 +145,5 @@
    * @throws ImageWriteException if there are errors writing the image in the file.
    */
-  private static File updateFile(MapillaryImportedImage image)
+  static File updateFile(MapillaryImportedImage image)
           throws ImageReadException, IOException, ImageWriteException {
     TiffOutputSet outputSet = null;
@@ -153,6 +153,11 @@
 
     // If the image is imported, loads the rest of the EXIF data.
-    ImageMetadata metadata = Imaging.getMetadata(image.getFile());
-    JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
+    JpegImageMetadata jpegMetadata = null;
+    try {
+      ImageMetadata metadata = Imaging.getMetadata(image.getFile());
+      jpegMetadata = (JpegImageMetadata) metadata;
+    } catch (Exception e) {
+      Main.warn(e);
+    }
 
     if (null != jpegMetadata) {
