Author: sergiykarpenko
Date: 2010-03-31 06:28:15 -0400 (Wed, 31 Mar 2010)
New Revision: 2198
Modified:
jcr/tags/1.12.0-CP01/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/access/AccessControlList.java
Log:
EXOJCR-621: NullPointerException avoided in equal() and dump() methods
Modified:
jcr/tags/1.12.0-CP01/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/access/AccessControlList.java
===================================================================
---
jcr/tags/1.12.0-CP01/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/access/AccessControlList.java 2010-03-31
10:10:49 UTC (rev 2197)
+++
jcr/tags/1.12.0-CP01/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/access/AccessControlList.java 2010-03-31
10:28:15 UTC (rev 2198)
@@ -184,18 +184,55 @@
if (obj instanceof AccessControlList)
{
AccessControlList another = (AccessControlList)obj;
- return dump().equals(another.dump());
+
+ // check owners, it may be null
+ if (!((owner == null && another.owner == null) || (owner != null
&& owner.equals(another.owner))))
+ {
+ return false;
+ }
+
+ // check accessList
+ List<AccessControlEntry> anotherAccessList = another.accessList;
+ if (accessList == null && anotherAccessList == null)
+ {
+ return true;
+ }
+ else if (accessList != null && anotherAccessList != null &&
accessList.size() == anotherAccessList.size())
+ {
+ // check content of both accessLists
+ for (int i = 0; i < accessList.size(); i++)
+ {
+ if
(!accessList.get(i).getAsString().equals(anotherAccessList.get(i).getAsString()))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+
+ //return dump().equals(another.dump());
}
return false;
}
public String dump()
{
- String res = "OWNER: " + owner + "\n";
- for (AccessControlEntry a : accessList)
+ String res = "OWNER: " + (owner != null ? owner : "null") +
"\n";
+ if (accessList != null)
{
- res += a.getAsString() + "\n";
+ for (AccessControlEntry a : accessList)
+ {
+ res += a.getAsString() + "\n";
+ }
}
+ else
+ {
+ res += "null";
+ }
return res;
}
Show replies by date