]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix potential NPE in Page.setFragment (#10089) 79/179/1
authorJohannes Dahlström <johannesd@vaadin.com>
Mon, 29 Oct 2012 13:05:09 +0000 (15:05 +0200)
committerJohannes Dahlström <johannesd@vaadin.com>
Mon, 29 Oct 2012 13:05:09 +0000 (15:05 +0200)
Change-Id: I0a0f2981bfd0e3dd26f935e4961b24454103bb30

server/src/com/vaadin/server/Page.java

index 510bb4734bd49f6963459775e46ac3fedbb51369..1f4ff040acbea030019a7d039db4b098baf8378f 100644 (file)
@@ -377,21 +377,22 @@ public class Page implements Serializable {
      */
     public void setFragment(String newFragment, boolean fireEvents) {
         String oldFragment = location.getFragment();
-        if (newFragment == null && oldFragment != null
-                || !newFragment.equals(oldFragment)) {
-            try {
-                location = new URI(location.getScheme(),
-                        location.getSchemeSpecificPart(), newFragment);
-            } catch (URISyntaxException e) {
-                // This should not actually happen as the fragment syntax is not
-                // constrained
-                throw new RuntimeException(e);
-            }
-            if (fireEvents) {
-                fireEvent(new FragmentChangedEvent(this, newFragment));
-            }
-            uI.markAsDirty();
+        if (newFragment == oldFragment
+                || (newFragment != null && newFragment.equals(oldFragment))) {
+            return;
         }
+        try {
+            location = new URI(location.getScheme(),
+                    location.getSchemeSpecificPart(), newFragment);
+        } catch (URISyntaxException e) {
+            // This should not actually happen as the fragment syntax is not
+            // constrained
+            throw new RuntimeException(e);
+        }
+        if (fireEvents) {
+            fireEvent(new FragmentChangedEvent(this, newFragment));
+        }
+        uI.markAsDirty();
     }
 
     private void fireEvent(EventObject event) {