Tomas Jelinek has uploaded a new change for review.

Change subject: frontend: fixed NPEs in debug mode
......................................................................

frontend: fixed NPEs in debug mode

The problem was that the PersistentBag is newly containing the "bag" which
contains the data.

Fixed by implementing it and delegating all the methods from List to the inner
"bag".

I'm extending the ArrayList and not implementing the List directly because when
implementing the retainAll the JRE creshed in debug mode.

Change-Id: Ie02040081a4553ec8350102c2b74537084159579
Signed-off-by: Tomas Jelinek <[email protected]>
---
M 
frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/org/hibernate/collection/internal/PersistentBag.java
1 file changed, 126 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/41682/1

diff --git 
a/frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/org/hibernate/collection/internal/PersistentBag.java
 
b/frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/org/hibernate/collection/internal/PersistentBag.java
index c55c4fb..310a571 100644
--- 
a/frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/org/hibernate/collection/internal/PersistentBag.java
+++ 
b/frontend/webadmin/modules/gwt-extension/src/main/java/org/ovirt/engine/ui/uioverrides/org/hibernate/collection/internal/PersistentBag.java
@@ -1,12 +1,138 @@
 package org.hibernate.collection.internal;
 
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
 
 /**
  * This is how we tell GWT to serialize the hibernate class PersistentBag.
  * We don't need the real implementation in the UI, and since we only use
  * the List interface, the transformation to ArrayList is valid.
+ *
+ * All the List interface calls are delegated to "bag" which contains the 
actual data.
  */
 public class PersistentBag extends ArrayList {
 
+    protected List bag;
+
+    @Override
+    public int size() {
+        return bag.size();
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return bag.isEmpty();
+    }
+
+    @Override
+    public boolean contains(Object o) {
+        return bag.contains(o);
+    }
+
+    @Override
+    public Iterator iterator() {
+        return bag.iterator();
+    }
+
+    @Override
+    public Object[] toArray() {
+        return bag.toArray();
+    }
+
+    public Object[] toArray(Object[] objects) {
+        return bag.toArray(objects);
+    }
+
+    @Override
+    public boolean add(Object o) {
+        return bag.add(o);
+    }
+
+    @Override
+    public boolean remove(Object o) {
+        return bag.remove(o);
+    }
+
+    @Override
+    public boolean containsAll(Collection collection) {
+        return bag.containsAll(collection);
+    }
+
+    @Override
+    public boolean addAll(Collection collection) {
+        return bag.addAll(collection);
+    }
+
+    @Override
+    public boolean addAll(int i, Collection collection) {
+        return bag.addAll(i, collection);
+    }
+
+    @Override
+    public boolean removeAll(Collection collection) {
+        return bag.removeAll(collection);
+    }
+
+    @Override
+    public void clear() {
+        bag.clear();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return bag.equals(o);
+    }
+
+    @Override
+    public int hashCode() {
+        return bag.hashCode();
+    }
+
+    @Override
+    public Object get(int i) {
+        return bag.get(i);
+    }
+
+    @Override
+    public Object set(int i, Object o) {
+        return bag.set(i, o);
+    }
+
+    @Override
+    public void add(int i, Object o) {
+        bag.add(i, o);
+    }
+
+    @Override
+    public Object remove(int i) {
+        return bag.remove(i);
+    }
+
+    @Override
+    public int indexOf(Object o) {
+        return bag.indexOf(o);
+    }
+
+    @Override
+    public int lastIndexOf(Object o) {
+        return bag.lastIndexOf(o);
+    }
+
+    @Override
+    public ListIterator listIterator() {
+        return bag.listIterator();
+    }
+
+    @Override
+    public ListIterator listIterator(int i) {
+        return bag.listIterator(i);
+    }
+
+    @Override
+    public List subList(int i, int i1) {
+        return bag.subList(i, i1);
+    }
 }


-- 
To view, visit https://gerrit.ovirt.org/41682
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie02040081a4553ec8350102c2b74537084159579
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Tomas Jelinek <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to