Menu

#5 deleting users does not check if their roles can be deleted

open-postponed
None
5
2002-06-14
2002-06-13
No

Ryan Senny had forgotten his password so I deleted him
as a user and he re-registered. When trying to put him
back as the leader of Parchment I got the following:
Information for the Administrator (shown only when
Debug mode is on):

stacktrace
java.lang.NullPointerException
at
org.wpi.gdc.cms.objmodel.development.DevTeam.setLeader(DevTeam.java:183)
at
org.wpi.gdc.cms.acting.EditCMSObjectAction.act(EditCMSObjectAction.java:377)
at
org.apache.cocoon.www.cms_webapp.sitemap_xmap.matchN100D2(/usr/local/jakarta-tomcat-4.0.1/work/localhost/cocoon/cocoon-files/org/apache/cocoon/www/cms_webapp/sitemap_xmap.java:2156)
at
org.apache.cocoon.www.cms_webapp.sitemap_xmap.process(/usr/local/jakarta-tomcat-4.0.1/work/localhost/cocoon/cocoon-files/org/apache/cocoon/www/cms_webapp/sitemap_xmap.java:1222)
at
org.apache.cocoon.www.cms_webapp.sitemap_xmap.process(/usr/local/jakarta-tomcat-4.0.1/work/localhost/cocoon/cocoon-files/org/apache/cocoon/www/cms_webapp/sitemap_xmap.java:1141)
at
org.apache.cocoon.sitemap.Handler.process(Handler.java:222)
at
org.apache.cocoon.sitemap.Manager.invoke(Manager.java:179)
at
org.apache.cocoon.www.sitemap_xmap.matchN1034A(/usr/local/jakarta-tomcat-4.0.1/work/localhost/cocoon/cocoon-files/org/apache/cocoon/www/sitemap_xmap.java:3909)
at
org.apache.cocoon.www.sitemap_xmap.process(/usr/local/jakarta-tomcat-4.0.1/work/localhost/cocoon/cocoon-files/org/apache/cocoon/www/sitemap_xmap.java:3101)
at
org.apache.cocoon.www.sitemap_xmap.process(/usr/local/jakarta-tomcat-4.0.1/work/localhost/cocoon/cocoon-files/org/apache/cocoon/www/sitemap_xmap.java:3022)
at
org.apache.cocoon.sitemap.Handler.process(Handler.java:222)
at
org.apache.cocoon.sitemap.Manager.invoke(Manager.java:179)
at
org.apache.cocoon.sitemap.SitemapManager.process(SitemapManager.java:154)
at org.apache.cocoon.Cocoon.process(Cocoon.java:575)
at
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:998)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)
at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
at java.lang.Thread.run(Thread.java:484)

original message
java.lang.NullPointerExceptio

Discussion

  • Liam Morley

    Liam Morley - 2002-06-14
    • milestone: 211780 -->
    • assigned_to: nobody --> imotic
    • summary: java.lang.NullPointerException --> deleting users does not check if their roles can be deleted
    • status: open --> open-postponed
     
  • Liam Morley

    Liam Morley - 2002-06-14

    Logged In: YES
    user_id=150393

    I've renamed this bug so that it has a better description
    than simply which exception is thrown.

    an email went out about this on the 13th of june.. I sent
    out a copy to the webmaster account a little while ago.

    what happens is as follows:
    1. whenever a user is deleted, his/her roles are also deleted.
    2. when there is no user with a LEADER role for a devteam,
    DevTeam.getLeader() returns null.
    3. when you call DevTeam.setLeader(), the first thing it
    does is find the current LEADER role for that DevTeam by
    calling getLeader().

    thus, a NullPointerException is thrown. The problem should
    be fixed by not allowing a user to be deleted until his/her
    roles have been reassigned. This has yet to be implemented.

    As for a workaround: please reassign roles before deleting
    users. If you're not sure which roles the user has, run the
    following SQL query:

    SELECT Role.* FROM Role, User, User_Role WHERE User.Username
    = 'seneyr' AND User.UserID = User_Role.UserID AND
    User_Role.RoleID = Role.RoleID;

    I've used Ryan's username ('seneyr') as an example..

     

Log in to post a comment.

MongoDB Logo MongoDB