Bug 392137 -Rap: Several NPEs on RwtScoutFileUploadField

https://bugs.eclipse.org/bugs/show_bug.cgi?id=392137
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileUploadField.java b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileUploadField.java
index f139889..0bbda6f 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileUploadField.java
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileUploadField.java
@@ -170,6 +170,10 @@
       @Override

       public void widgetSelected(SelectionEvent event) {

         String filename = getUiBrowseButton().getFileName();

+        if (filename == null) {

+          return;

+        }

+

         getUiField().setText(filename);

         handleUpload();

       }

@@ -315,6 +319,9 @@
     if (!doit) {

       return;

     }

+    if (m_uploadedFile == null) {

+      return;

+    }

     // only handle if text has changed

     if (CompareUtility.equals(m_uploadedFile, getScoutObject().getDisplayText()) && getScoutObject().getErrorStatus() == null) {

       return;

@@ -365,7 +372,10 @@
     if (m_uploadedFile != null) {

       return false;

     }

-    m_handler.removeUploadListener(m_uploadListener);

+    if (m_uploadListener != null) {

+      m_handler.removeUploadListener(m_uploadListener);

+      m_uploadListener = null;

+    }

     m_handler.dispose();

     getUiBrowseButton().dispose();

     getUiProgressBar().dispose();