aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java')
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java b/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java
index 752e4c4760..f619c1c239 100644
--- a/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java
+++ b/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java
@@ -6,7 +6,9 @@ package com.vaadin.terminal.gwt.server;
import java.io.PrintWriter;
import java.io.Serializable;
import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
import java.net.URL;
+import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -173,11 +175,21 @@ public abstract class AbstractWebApplicationContext implements
if (filename == null) {
return "app://APP/" + mapKey + "/";
} else {
- return "app://APP/" + mapKey + "/" + filename;
+ return "app://APP/" + mapKey + "/" + urlEncode(filename);
}
}
+ static String urlEncode(String filename) {
+ try {
+ return URLEncoder.encode(filename, "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(
+ "UTF-8 charset not available (\"this should never happen\")",
+ e);
+ }
+ }
+
public boolean isApplicationResourceURL(URL context, String relativeUri) {
// If the relative uri is null, we are ready
if (relativeUri == null) {