Continuum

Click any link in the Role List brings you to a blank page with java.lang.NullPointerException in the log

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.2
  • Fix Version/s: 1.2
  • Component/s: Web - UI
  • Labels:
    None
  • Environment:
    Linux
  • Complexity:
    Intermediate
  • Number of attachments :
    0

Description

Log in as Admin, click "Roles", and then click any links from the "Role List" brings you to a blank page with java.lang.NullPointerException in the log:

428651 [btpool0-0] ERROR org.mortbay.log - Nested in org.apache.jasper.JasperException: Exception in JSP: /WEB-INF/jsp/redback/include/securityLinks.jsp:44

41: <link rel="shortcut icon" href="<ww:url value="/favicon.ico" includeParams="none"/>" type="image/x-icon"/>
42:
43: <script src="<ww:url value="/scripts/tigris.js" includeParams="none"/>" type="text/javascript"></script>
44: </head>
45:
46: <body onload="focus()" marginwidth="0" marginheight="0" class="composite">
47: <%@ include file="/WEB-INF/jsp/navigations/DefaultTop.jsp" %>

Stacktrace::
java.lang.NullPointerException
at org.codehaus.plexus.redback.taglib.jsp.IsNotReadOnlyUserManagerTag.condition(IsNotReadOnlyUserManagerTag.java:44)
at javax.servlet.jsp.jstl.core.ConditionalTagSupport.doStartTag(ConditionalTagSupport.java:84)
at org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp._jspx_meth_redback_isNotReadOnlyUserManager_1(org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp:1135)
at org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp._jspx_meth_c_otherwise_1(org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp:890)
at org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp._jspx_meth_c_choose_1(org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp:626)
at org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp._jspx_meth_ww_i18n_1(org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp:547)
at org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp._jspx_meth_ww_i18n_0(org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp:189)
at org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp._jspService(org.apache.jsp.WEB_002dINF.jsp.error.httpError_jsp:119)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
at org.mortbay.jetty.servlet.Dispatcher.error(Dispatcher.java:135)
at org.mortbay.jetty.servlet.ErrorPageErrorHandler.handle(ErrorPageErrorHandler.java:121)
at org.mortbay.jetty.Response.sendError(Response.java:274)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:433)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Activity

Hide
Damien Lecan added a comment -

Same thing for me.
Other use case : force a user to change his password. On next login, when user tries to change password, 500 error

It's a blocker issue for me.

Continuum 1.2 was migrated from 1.1.

Show
Damien Lecan added a comment - Same thing for me. Other use case : force a user to change his password. On next login, when user tries to change password, 500 error It's a blocker issue for me. Continuum 1.2 was migrated from 1.1.
Hide
Emmanuel Venisse added a comment -

What are the lines in logs before this stacktrace? Without them, we can't work on this issue

Show
Emmanuel Venisse added a comment - What are the lines in logs before this stacktrace? Without them, we can't work on this issue
Hide
Damien Lecan added a comment -

> What are the lines in logs before this stacktrace?
> Without them, we can't work on this issue

5594481 [btpool0-0] ERROR org.mortbay.log - /continuum/security/password.action
java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1)
at java.util.SubList.<init>(AbstractList.java:604)
at java.util.RandomAccessSubList.<init>(AbstractList.java:758)
at java.util.AbstractList.subList(AbstractList.java:468)
at org.codehaus.plexus.redback.policy.DefaultUserSecurityPolicy.extensionChangePassword(DefaultUserSecurityPolicy.java:250)
at org.codehaus.plexus.redback.users.jdo.JdoUserManager.updateUser(JdoUserManager.java:363)
at org.codehaus.plexus.redback.users.cached.CachedUserManager.updateUser(CachedUserManager.java:207)
at org.codehaus.plexus.redback.users.configurable.ConfigurableUserManager.updateUser(ConfigurableUserManager.java:161)
at org.codehaus.plexus.redback.xwork.action.PasswordAction.submit(PasswordAction.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358)
at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:192)
at org.codehaus.plexus.redback.xwork.interceptor.SecureActionInterceptor.intercept(SecureActionInterceptor.java:178)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at org.codehaus.plexus.redback.xwork.interceptor.PolicyEnforcementInterceptor.intercept(PolicyEnforcementInterceptor.java:149)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at org.codehaus.plexus.redback.xwork.interceptor.AutoLoginInterceptor.intercept(AutoLoginInterceptor.java:156)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at org.codehaus.plexus.redback.xwork.interceptor.ForceAdminUserInterceptor.intercept(ForceAdminUserInterceptor.java:76)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at org.codehaus.plexus.redback.xwork.interceptor.EnvironmentCheckInterceptor.intercept(EnvironmentCheckInterceptor.java:122)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:175)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:174)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.webwork.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:169)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

Show
Damien Lecan added a comment - > What are the lines in logs before this stacktrace? > Without them, we can't work on this issue 5594481 [btpool0-0] ERROR org.mortbay.log - /continuum/security/password.action java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1) at java.util.SubList.<init>(AbstractList.java:604) at java.util.RandomAccessSubList.<init>(AbstractList.java:758) at java.util.AbstractList.subList(AbstractList.java:468) at org.codehaus.plexus.redback.policy.DefaultUserSecurityPolicy.extensionChangePassword(DefaultUserSecurityPolicy.java:250) at org.codehaus.plexus.redback.users.jdo.JdoUserManager.updateUser(JdoUserManager.java:363) at org.codehaus.plexus.redback.users.cached.CachedUserManager.updateUser(CachedUserManager.java:207) at org.codehaus.plexus.redback.users.configurable.ConfigurableUserManager.updateUser(ConfigurableUserManager.java:161) at org.codehaus.plexus.redback.xwork.action.PasswordAction.submit(PasswordAction.java:163) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358) at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:192) at org.codehaus.plexus.redback.xwork.interceptor.SecureActionInterceptor.intercept(SecureActionInterceptor.java:178) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at org.codehaus.plexus.redback.xwork.interceptor.PolicyEnforcementInterceptor.intercept(PolicyEnforcementInterceptor.java:149) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at org.codehaus.plexus.redback.xwork.interceptor.AutoLoginInterceptor.intercept(AutoLoginInterceptor.java:156) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at org.codehaus.plexus.redback.xwork.interceptor.ForceAdminUserInterceptor.intercept(ForceAdminUserInterceptor.java:76) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at org.codehaus.plexus.redback.xwork.interceptor.EnvironmentCheckInterceptor.intercept(EnvironmentCheckInterceptor.java:122) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:175) at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115) at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:174) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.webwork.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:169) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
Hide
Damien Lecan added a comment -

When I look at the code of DefaultUserSecurityPolicy class, i see that it depends heavily on redback configuration.

Time ago, for Continuum 1.1, I configured Redback param security.policy.password.previous.count to 0(zero). It worked great, but not now with Continuum 1.2
Archiva seems to have the same problem : http://jira.codehaus.org/browse/MRM-957

Show
Damien Lecan added a comment - When I look at the code of DefaultUserSecurityPolicy class, i see that it depends heavily on redback configuration. Time ago, for Continuum 1.1, I configured Redback param security.policy.password.previous.count to 0(zero). It worked great, but not now with Continuum 1.2 Archiva seems to have the same problem : http://jira.codehaus.org/browse/MRM-957
Hide
Wendy Smoak added a comment -

> Log in as Admin, click "Roles", and then click any links from the "Role List"

This works fine for me in Continuum 1.2 on Mac OS X.

Please check the 'About' button and make sure you have the final 1.2, which is revision 697023.

You might want to open a separate issue for the problem with forcing a user to change his password as it's not related to the summary of this one and may get lost.

Show
Wendy Smoak added a comment - > Log in as Admin, click "Roles", and then click any links from the "Role List" This works fine for me in Continuum 1.2 on Mac OS X. Please check the 'About' button and make sure you have the final 1.2, which is revision 697023. You might want to open a separate issue for the problem with forcing a user to change his password as it's not related to the summary of this one and may get lost.
Hide
apache maillist added a comment -

works on final 1.2 release build number 697023. was using 1.2 earlier release

Show
apache maillist added a comment - works on final 1.2 release build number 697023. was using 1.2 earlier release

People

Vote (1)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: