Bug 565789: html-escape filenames in UploadPanel...

to avoid markup validation issues.

Signed-off-by: Clemens Eisserer <linuxhippy@gmail.com>
diff --git a/bundles/org.eclipse.rap.filedialog/src/org/eclipse/swt/internal/widgets/UploadPanel.java b/bundles/org.eclipse.rap.filedialog/src/org/eclipse/swt/internal/widgets/UploadPanel.java
index 3e6a497..8aed8b4 100644
--- a/bundles/org.eclipse.rap.filedialog/src/org/eclipse/swt/internal/widgets/UploadPanel.java
+++ b/bundles/org.eclipse.rap.filedialog/src/org/eclipse/swt/internal/widgets/UploadPanel.java
@@ -23,6 +23,7 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.internal.widgets.FileUploadRunnable.State;
+import org.eclipse.rap.rwt.internal.util.Entities;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
@@ -81,7 +82,7 @@
         name.setData( RWT.MARKUP_ENABLED, Boolean.TRUE );
         name.setData( FILENAME_KEY, fileName );
         name.setLayoutData( createHorizontalFillData() );
-        name.setText( fileName );
+        name.setText( prepareText( fileName, null ) );
         labels.add( name );
       }
     }
@@ -141,10 +142,11 @@
 
   private static String prepareText( String fileName, Exception exception ) {
     String errorMessage = getErrorMessage( fileName, exception );
+	String escapedFileName = Entities.XML.escape( fileName );
     if( errorMessage != null ) {
-      return fileName + "<br/><small style=\"color: red;\">" + errorMessage + "</small>";
+      return escapedFileName + "<br/><small style=\"color: red;\">" + errorMessage + "</small>";
     }
-    return fileName;
+    return escapedFileName;
   }
 
   private static String getErrorToolTip( String fileName, Exception exception ) {
diff --git a/tests/org.eclipse.rap.filedialog.test/src/org/eclipse/swt/internal/widgets/UploadPanel_Test.java b/tests/org.eclipse.rap.filedialog.test/src/org/eclipse/swt/internal/widgets/UploadPanel_Test.java
index 1493754..c9550eb 100644
--- a/tests/org.eclipse.rap.filedialog.test/src/org/eclipse/swt/internal/widgets/UploadPanel_Test.java
+++ b/tests/org.eclipse.rap.filedialog.test/src/org/eclipse/swt/internal/widgets/UploadPanel_Test.java
@@ -55,6 +55,13 @@
 
     assertEquals( 1, uploadPanel.getChildren().length );
   }
+  
+  @Test
+  public void testCreate_createsUploadsRows_withSpecialFileName() {
+    uploadPanel = new UploadPanel( shell, new String[] { "foo & bar" } );
+
+    assertEquals( 1, uploadPanel.getChildren().length );
+  }
 
   @Test
   public void testCreate_initsFileNames() {