[ 
https://jira.jboss.org/browse/JBSEAM-4586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12552920#action_12552920
 ] 

Daniel Wachter commented on JBSEAM-4586:
----------------------------------------

Same problem for me!

> NullPointerException instead of AuthorizationException
> ------------------------------------------------------
>
>                 Key: JBSEAM-4586
>                 URL: https://jira.jboss.org/browse/JBSEAM-4586
>             Project: Seam
>          Issue Type: Bug
>    Affects Versions: 2.2.0.GA
>            Reporter: Konstantin Larionov
>            Assignee: Shane Bryzak
>
> I am using Seam 2.2.0.GA and I have both rule-based (Drools) and JPA entity 
> security enabled. It works, until I try to persist a new entity without 
> having permission for this operation.
> In this case Seam throws unexpected NullPointerException instead of 
> AuthorizationException. Namely, it is thrown by the 
> org.jboss.seam.security.permission.EntityIdentifierStrategy.getIdentifier(Object
>  target) method.
> I debug this code and found that exception is thrown when trying to get 
> identifier for new entity, which is not yet persisted and thus have no ID 
> assigned!
> The most interesting part of stack trace is below. 
> ...
> Caused by: java.lang.NullPointerException
>       at 
> org.jboss.seam.security.permission.EntityIdentifierStrategy.getIdentifier(EntityIdentifierStrategy.java:48)
>       at 
> org.jboss.seam.security.permission.IdentifierPolicy.getIdentifier(IdentifierPolicy.java:85)
>       at 
> org.jboss.seam.security.permission.JpaPermissionStore.createPermissionQuery(JpaPermissionStore.java:234)
>       at 
> org.jboss.seam.security.permission.JpaPermissionStore.listPermissions(JpaPermissionStore.java:622)
>       at 
> org.jboss.seam.security.permission.JpaPermissionStore.listPermissions(JpaPermissionStore.java:607)
>       at 
> org.jboss.seam.security.permission.PersistentPermissionResolver.hasPermission(PersistentPermissionResolver.java:80)
>       at 
> org.jboss.seam.security.permission.PermissionMapper.resolvePermission(PermissionMapper.java:80)
>       at org.jboss.seam.security.Identity.hasPermission(Identity.java:632)
>       at org.jboss.seam.security.Identity.checkPermission(Identity.java:580)
>       at 
> org.jboss.seam.security.EntityPermissionChecker.checkEntityPermission(EntityPermissionChecker.java:115)
>       at 
> org.jboss.seam.security.EntitySecurityListener.prePersist(EntitySecurityListener.java:30)
>       at sun.reflect.GeneratedMethodAccessor499.invoke(Unknown Source)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>       at java.lang.reflect.Method.invoke(Unknown Source)
>       at 
> org.hibernate.ejb.event.ListenerCallback.invoke(ListenerCallback.java:31)
>       at 
> org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:80)
>       at 
> org.hibernate.ejb.event.EntityCallbackHandler.preCreate(EntityCallbackHandler.java:49)
>       at 
> org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:48)
>       at 
> org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:154)
>       at 
> org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:110)
>       at 
> org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:61)
>       at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:645)
>       at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:619)
>       at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:623)
>       at 
> org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:220)
>       at 
> org.jboss.seam.persistence.EntityManagerProxy.persist(EntityManagerProxy.java:137)
>       at 
> com.ims.ipat.web.editor.OrganizationEditorBean.save(OrganizationEditorBean.java:47)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://jira.jboss.org/secure/Administrators.jspa
-
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

Reply via email to