securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
.. .. @@ -1,6 +1,7 @@ 1 1 package net.curisit.securis.services; 2 2 3 3 import java.util.Date; 4 +import java.util.HashSet;4 5 import java.util.List; 5 6 import java.util.Set; 6 7 .. .. @@ -148,6 +149,16 @@ 148 149 return Response.ok(lt).build(); 149 150 } 150 151 152 + private Set<String> getMdKeys(Set<LicenseTypeMetadata> mds) {153 + Set<String> ids = new HashSet<String>();154 + if (mds != null) {155 + for (LicenseTypeMetadata md : mds) {156 + ids.add(md.getKey());157 + }158 + }159 + return ids;160 + }161 +151 162 @PUT 152 163 @POST 153 164 @Path("/{ltid}") .. .. @@ -179,8 +190,9 @@ 179 190 currentlt.setDescription(lt.getDescription()); 180 191 181 192 Set<LicenseTypeMetadata> newMD = lt.getMetadata(); 193 + Set<String> newMdKeys = getMdKeys(newMD);182 194 for (LicenseTypeMetadata currentMd : currentlt.getMetadata()) { 183 - if (newMD == null || !newMD.contains(currentMd)) {195 + if (!newMdKeys.contains(currentMd.getKey())) {184 196 em.remove(currentMd); 185 197 LOG.info("Removing MD: {}", currentMd); 186 198 } .. .. @@ -188,9 +200,10 @@ 188 200 189 201 if (newMD != null) { 190 202 Set<LicenseTypeMetadata> oldMD = currentlt.getMetadata(); 203 + Set<String> oldMdKeys = getMdKeys(oldMD);191 204 192 205 for (LicenseTypeMetadata md : newMD) { 193 - if (oldMD.contains(md)) {206 + if (oldMdKeys.contains(md.getKey())) {194 207 em.merge(md); 195 208 } else { 196 209 md.setLicenseType(currentlt); securis/src/main/java/net/curisit/securis/services/PackResource.java
.. .. @@ -2,6 +2,7 @@ 2 2 3 3 import java.security.Principal; 4 4 import java.util.Date; 5 +import java.util.HashSet;5 6 import java.util.List; 6 7 import java.util.Set; 7 8 .. .. @@ -236,6 +237,16 @@ 236 237 pack.setLicenseType(lt); 237 238 } 238 239 240 + private Set<String> getMdKeys(Set<PackMetadata> mds) {241 + Set<String> ids = new HashSet<String>();242 + if (mds != null) {243 + for (PackMetadata md : mds) {244 + ids.add(md.getKey());245 + }246 + }247 + return ids;248 + }249 +239 250 @PUT 240 251 @POST 241 252 @Path("/{packId}") .. .. @@ -271,16 +282,18 @@ 271 282 currentPack.setRenewValidPeriod(pack.getRenewValidPeriod()); 272 283 273 284 Set<PackMetadata> newMD = pack.getMetadata(); 285 + Set<String> newMdKeys = getMdKeys(newMD);274 286 for (PackMetadata currentMd : currentPack.getMetadata()) { 275 - if (newMD == null || !newMD.contains(currentMd)) {287 + if (!newMdKeys.contains(currentMd.getKey())) {276 288 em.remove(currentMd); 277 289 } 278 290 } 279 291 280 292 if (newMD != null) { 281 293 Set<PackMetadata> oldMD = currentPack.getMetadata(); 294 + Set<String> oldMdKeys = getMdKeys(newMD);282 295 for (PackMetadata md : newMD) { 283 - if (oldMD.contains(md)) {296 + if (oldMdKeys.contains(md.getKey())) {284 297 em.merge(md); 285 298 } else { 286 299 md.setPack(currentPack);