diff options
-rw-r--r-- | src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java b/src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java index ff8786a6b5..6a45860803 100644 --- a/src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java +++ b/src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java @@ -98,7 +98,21 @@ public class ClassPathExplorer { files[i].length() - 8); classname = classpathLocations.get(location) + "." + classname; - widgetsets.put(classname, location); + if (!widgetsets.containsKey(classname)) { + String packageName = classpathLocations.get(location); + String packagePath = packageName.replaceAll("\\.", "/"); + String basePath = location.getFile().replaceAll( + "/" + packagePath + "$", ""); + try { + URL url = new URL(location.getProtocol(), location + .getHost(), location.getPort(), basePath); + widgetsets.put(classname, url); + } catch (MalformedURLException e) { + // should never happen as based on an existing URL, + // only changing end of file name/path part + e.printStackTrace(); + } + } } } } else { |