[
https://issues.jboss.org/browse/SEAMSECURITY-70?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Porter resolved SEAMSECURITY-70.
--------------------------------------
Fix Version/s: 3.1.0.Beta1
Resolution: Done
> Calling RoleManager.removeRole(Roletype rt,User u, Group g) throws an NPE
> -------------------------------------------------------------------------
>
> Key: SEAMSECURITY-70
> URL: https://issues.jboss.org/browse/SEAMSECURITY-70
> Project: Seam Security
> Issue Type: Bug
> Reporter: Charles Louppe
> Assignee: Jason Porter
> Fix For: 3.1.0.Beta1
>
>
> Hi,
> I tried to use the function removeRole(Roletype rt,User u, Group g) of the
> class RoleManagerImpl which throws me an NullPointerException.
> I have fixed the bug, which was in the class JPAIdentityStore in the method
> removeRelationship :
> {code:java}
> public void removeRelationship(IdentityStoreInvocationContext ctx,
> IdentityObject fromIdentity,
> IdentityObject toIdentity,
> IdentityObjectRelationshipType
> relationshipType,
> String relationshipName) throws
> IdentityException {
> Property<?> fromProperty =
> modelProperties.get(PROPERTY_RELATIONSHIP_FROM);
> Property<?> toProperty =
> modelProperties.get(PROPERTY_RELATIONSHIP_TO);
> Property<?> relationshipTypeProp =
> modelProperties.get(PROPERTY_RELATIONSHIP_TYPE);
> EntityManager em = getEntityManager(ctx);
> CriteriaBuilder builder = em.getCriteriaBuilder();
> CriteriaQuery<?> criteria = builder.createQuery(identityClass);
> Root<?> root = criteria.from(identityClass);
> List<Predicate> predicates = new ArrayList<Predicate>();
> predicates.add(builder.equal(root.get(fromProperty.getName()),
> lookupIdentity(fromIdentity, em)));
> predicates.add(builder.equal(root.get(toProperty.getName()),
> lookupIdentity(toIdentity, em)));
> predicates.add(builder.equal(root.get(relationshipTypeProp.getName()),
> lookupRelationshipType(relationshipType, em)));
> criteria.where(predicates.toArray(new Predicate[predicates.size()]));
> Object relationship = em.createQuery(criteria).getSingleResult();
> em.remove(relationship);
> }
> {code}
> The bug is due to those following lines :
> CriteriaQuery<?> criteria = builder.createQuery(identityClass);
> Root<?> root = criteria.from(identityClass);
> It should be instead :
> CriteriaQuery<?> criteria = builder.createQuery(relationshipClass);
> Root<?> root = criteria.from(relationshipClass);
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues