org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - User Role Mapping for user 'oksmith' Invalid role id 'MyCompany: ?????? (CRUD)' found.

Sonatype JIRA | rhapsody | 6 years ago
  1. 0

    When I assige roles to a user, then save it, an exception has occurred. The role name is written in UTF-8 characters, Korean. (There was no problem about role names written in English.) The exception message shows "Invalid role id ...". It seems the nexus can't find the role id because it does not process it properly. It was no errors in nexus-1.8.x. This is log. The question mark (????) is a part of UTF-8 characters (Korean). {code} 2011-04-06 10:34:32 WARN [1574179608-8331] - o.s.s.r.u.UserToRol~ - Configuration error! org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - User Role Mapping for user 'oksmith' Invalid role id 'MyCompany: ?????? (CRUD)' found. at org.sonatype.security.realms.tools.DefaultConfigurationManager.updateUserRoleMapping(DefaultConfigurationManager.java:507) at org.sonatype.security.realms.tools.ResourceMergingConfigurationManager.updateUserRoleMapping(ResourceMergingConfigurationManager.java:384) at org.sonatype.security.realms.tools.ResourceMergingConfigurationManager.updateUserRoleMapping(ResourceMergingConfigurationManager.java:390) at org.sonatype.security.usermanagement.xml.SecurityXmlUserManager.setUsersRoles(SecurityXmlUserManager.java:356) at org.sonatype.security.DefaultSecuritySystem.setUsersRoles(DefaultSecuritySystem.java:442) at org.sonatype.security.rest.users.UserToRolePlexusResource.put(UserToRolePlexusResource.java:162) at org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:316) at org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:102) at org.restlet.resource.Resource.put(Resource.java:706) at org.restlet.resource.Resource.handlePut(Resource.java:603) at org.restlet.Finder.handle(Finder.java:359) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) at org.restlet.Application.handle(Application.java:341) at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at org.restlet.Component.handle(Component.java:673) at org.restlet.Server.handle(Server.java:331) at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) 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:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) 2011-04-06 10:35:26 ERROR [1574179608-8324] - o.s.n.p.m.m.M2Repos~ - Got Storage Exception while storing remote artifact, will attempt next mirror, cause: java.net.SocketTimeoutException: Read timed out 2011-04-06 10:35:28 WARN [1574179608-8334] - o.s.n.p.m.m.M2Repos~ - Remote peer of proxy repository "ibiblio-maven" (id=ibiblio-maven) threw a org.sonatype.nexus.proxy.RemoteAccessDeniedException exception. Please set up authorization information for this repository. Auto-blocking this repository to prevent further connection-leaks and known-to-fail outbound connections until administrator fixes the problems, or Nexus detects remote repository as healthy. - Cause(s): Forbidden {code}

    Sonatype JIRA | 6 years ago | rhapsody
    org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - User Role Mapping for user 'oksmith' Invalid role id 'MyCompany: ?????? (CRUD)' found.
  2. 0

    Right click on "deployment" user, select "set password". Enter a password and click "OK". {quote} 2011-07-01 13:17:54 WARN [tp-474561994-20] - org.sonatype.security.rest.users.UserSetPasswordPlexusResource - Failed to set password! org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - User ID 'deployment' Invalid role id 'deployment' found. at org.sonatype.security.realms.tools.DefaultConfigurationManager.updateUser(DefaultConfigurationManager.java:403) at org.sonatype.security.realms.tools.ResourceMergingConfigurationManager.updateUser(ResourceMergingConfigurationManager.java:435) at org.sonatype.security.usermanagement.xml.SecurityXmlUserManager.changePassword(SecurityXmlUserManager.java:209) at org.sonatype.security.DefaultSecuritySystem.changePassword(DefaultSecuritySystem.java:690) at org.sonatype.security.rest.users.UserSetPasswordPlexusResource.post(UserSetPasswordPlexusResource.java:97) at org.sonatype.plexus.rest.resource.RestletResource.acceptRepresentation(RestletResource.java:272) at org.sonatype.nexus.rest.NexusRestletResource.acceptRepresentation(NexusRestletResource.java:77) at org.restlet.resource.Resource.post(Resource.java:688) at org.restlet.resource.Resource.handlePost(Resource.java:537) at org.restlet.Finder.handle(Finder.java:357) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) at org.restlet.Application.handle(Application.java:341) at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at org.restlet.Component.handle(Component.java:673) at org.restlet.Server.handle(Server.java:331) at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) 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:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) {quote}

    Sonatype JIRA | 5 years ago | Rich Seddon
    org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - User ID 'deployment' Invalid role id 'deployment' found.
  3. 0

    Right click on "deployment" user, select "set password". Enter a password and click "OK". {quote} 2011-07-01 13:17:54 WARN [tp-474561994-20] - org.sonatype.security.rest.users.UserSetPasswordPlexusResource - Failed to set password! org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - User ID 'deployment' Invalid role id 'deployment' found. at org.sonatype.security.realms.tools.DefaultConfigurationManager.updateUser(DefaultConfigurationManager.java:403) at org.sonatype.security.realms.tools.ResourceMergingConfigurationManager.updateUser(ResourceMergingConfigurationManager.java:435) at org.sonatype.security.usermanagement.xml.SecurityXmlUserManager.changePassword(SecurityXmlUserManager.java:209) at org.sonatype.security.DefaultSecuritySystem.changePassword(DefaultSecuritySystem.java:690) at org.sonatype.security.rest.users.UserSetPasswordPlexusResource.post(UserSetPasswordPlexusResource.java:97) at org.sonatype.plexus.rest.resource.RestletResource.acceptRepresentation(RestletResource.java:272) at org.sonatype.nexus.rest.NexusRestletResource.acceptRepresentation(NexusRestletResource.java:77) at org.restlet.resource.Resource.post(Resource.java:688) at org.restlet.resource.Resource.handlePost(Resource.java:537) at org.restlet.Finder.handle(Finder.java:357) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) at org.restlet.Application.handle(Application.java:341) at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at org.restlet.Component.handle(Component.java:673) at org.restlet.Server.handle(Server.java:331) at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) 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:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) {quote}

    Sonatype JIRA | 5 years ago | Rich Seddon
    org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - User ID 'deployment' Invalid role id 'deployment' found.
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    # Create a new role called TEST and add any single role to it, save # Now to the same role, click the add button to add a new role to TEST. The dialog that is shown contains the role TEST and it can be selected. [REGRESSION: 1.7.2 in the old roles interface, the role you were editing was hidden from the list] # After selecting the role TEST ( and even some other roles ) and clicking Ok, try to save the role TEST. There is no error in the UI and all looks fine. # Refresh the roles ui and select TEST role again. This time you see that TEST does not contain the role TEST or any other of the roles you may have added in the last edit/save cycle. In the logs you see the real reason. {noformat} 2011-06-14 11:36:16 WARN [p-1128916529-54] - org.sonatype.security.rest.roles.RolePlexusResource - Configuration error! org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - Role ID 'TEST' cannot contain itself. at org.sonatype.security.realms.tools.DefaultConfigurationManager.updateRole(DefaultConfigurationManager.java:375) at org.sonatype.security.realms.tools.ResourceMergingConfigurationManager.updateRole(ResourceMergingConfigurationManager.java:417) at org.sonatype.security.authorization.xml.SecurityXmlAuthorizationManager.updateRole(SecurityXmlAuthorizationManager.java:196) at org.sonatype.security.rest.roles.RolePlexusResource.put(RolePlexusResource.java:147) at org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:316) at org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:95) at org.restlet.resource.Resource.put(Resource.java:706) at org.restlet.resource.Resource.handlePut(Resource.java:603) at org.restlet.Finder.handle(Finder.java:359) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) at org.restlet.Application.handle(Application.java:341) at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at org.restlet.Component.handle(Component.java:673) at org.restlet.Server.handle(Server.java:331) at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) 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:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) {noformat} Expected: The UI to preferably not show the role being edited in the role selection list. This would maintain previous behavior. Or, provide a suitable error message on save when you try to do this and prevent saving a role containing itself.

    Sonatype JIRA | 5 years ago | Peter Lynch
    org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - Role ID 'TEST' cannot contain itself.
  6. 0

    # Create a new role called TEST and add any single role to it, save # Now to the same role, click the add button to add a new role to TEST. The dialog that is shown contains the role TEST and it can be selected. [REGRESSION: 1.7.2 in the old roles interface, the role you were editing was hidden from the list] # After selecting the role TEST ( and even some other roles ) and clicking Ok, try to save the role TEST. There is no error in the UI and all looks fine. # Refresh the roles ui and select TEST role again. This time you see that TEST does not contain the role TEST or any other of the roles you may have added in the last edit/save cycle. In the logs you see the real reason. {noformat} 2011-06-14 11:36:16 WARN [p-1128916529-54] - org.sonatype.security.rest.roles.RolePlexusResource - Configuration error! org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - Role ID 'TEST' cannot contain itself. at org.sonatype.security.realms.tools.DefaultConfigurationManager.updateRole(DefaultConfigurationManager.java:375) at org.sonatype.security.realms.tools.ResourceMergingConfigurationManager.updateRole(ResourceMergingConfigurationManager.java:417) at org.sonatype.security.authorization.xml.SecurityXmlAuthorizationManager.updateRole(SecurityXmlAuthorizationManager.java:196) at org.sonatype.security.rest.roles.RolePlexusResource.put(RolePlexusResource.java:147) at org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:316) at org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:95) at org.restlet.resource.Resource.put(Resource.java:706) at org.restlet.resource.Resource.handlePut(Resource.java:603) at org.restlet.Finder.handle(Finder.java:359) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) at org.restlet.Application.handle(Application.java:341) at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at org.restlet.Router.handle(Router.java:504) at org.restlet.Filter.doHandle(Filter.java:150) at org.restlet.Filter.handle(Filter.java:195) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) at org.restlet.Component.handle(Component.java:673) at org.restlet.Server.handle(Server.java:331) at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) 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:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) {noformat} Expected: The UI to preferably not show the role being edited in the role selection list. This would maintain previous behavior. Or, provide a suitable error message on save when you try to do this and prevent saving a role containing itself.

    Sonatype JIRA | 5 years ago | Peter Lynch
    org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! Validation errors follows: o roles - Role ID 'TEST' cannot contain itself.

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. org.sonatype.configuration.validation.InvalidConfigurationException

      Configuration is invalid! Validation errors follows: o roles - User Role Mapping for user 'oksmith' Invalid role id 'MyCompany: ?????? (CRUD)' found.

      at org.sonatype.security.realms.tools.DefaultConfigurationManager.updateUserRoleMapping()
    2. ${project.groupId}:${project.artifactId}
      SecurityXmlUserManager.setUsersRoles
      1. org.sonatype.security.realms.tools.DefaultConfigurationManager.updateUserRoleMapping(DefaultConfigurationManager.java:507)
      2. org.sonatype.security.realms.tools.ResourceMergingConfigurationManager.updateUserRoleMapping(ResourceMergingConfigurationManager.java:384)
      3. org.sonatype.security.realms.tools.ResourceMergingConfigurationManager.updateUserRoleMapping(ResourceMergingConfigurationManager.java:390)
      4. org.sonatype.security.usermanagement.xml.SecurityXmlUserManager.setUsersRoles(SecurityXmlUserManager.java:356)
      4 frames
    3. ${project.groupId}:${project.artifactId}
      DefaultSecuritySystem.setUsersRoles
      1. org.sonatype.security.DefaultSecuritySystem.setUsersRoles(DefaultSecuritySystem.java:442)
      1 frame
    4. org.sonatype.security
      UserToRolePlexusResource.put
      1. org.sonatype.security.rest.users.UserToRolePlexusResource.put(UserToRolePlexusResource.java:162)
      1 frame
    5. ${project.groupId}:${project.artifactId}
      RestletResource.storeRepresentation
      1. org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:316)
      1 frame
    6. Nexus Core
      NexusRestletResource.storeRepresentation
      1. org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:102)
      1 frame
    7. org.restlet.resource
      Resource.handlePut
      1. org.restlet.resource.Resource.put(Resource.java:706)
      2. org.restlet.resource.Resource.handlePut(Resource.java:603)
      2 frames
    8. org.restlet
      Filter.doHandle
      1. org.restlet.Finder.handle(Finder.java:359)
      2. org.restlet.Filter.doHandle(Filter.java:150)
      3. org.restlet.Filter.handle(Filter.java:195)
      4. org.restlet.Router.handle(Router.java:504)
      5. org.restlet.Filter.doHandle(Filter.java:150)
      6. org.restlet.Filter.handle(Filter.java:195)
      7. org.restlet.Router.handle(Router.java:504)
      8. org.restlet.Filter.doHandle(Filter.java:150)
      9. org.restlet.Filter.handle(Filter.java:195)
      10. org.restlet.Filter.doHandle(Filter.java:150)
      10 frames
    9. ${project.groupId}:${project.artifactId}
      RetargetableRestlet.doHandle
      1. org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39)
      1 frame
    10. org.restlet
      Filter.doHandle
      1. org.restlet.Filter.handle(Filter.java:195)
      2. org.restlet.Filter.doHandle(Filter.java:150)
      3. org.restlet.Filter.handle(Filter.java:195)
      4. org.restlet.Filter.doHandle(Filter.java:150)
      5. org.restlet.Filter.handle(Filter.java:195)
      6. org.restlet.Filter.doHandle(Filter.java:150)
      6 frames
    11. com.noelios.restlet
      StatusFilter.doHandle
      1. com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
      1 frame
    12. org.restlet
      Filter.handle
      1. org.restlet.Filter.handle(Filter.java:195)
      2. org.restlet.Filter.doHandle(Filter.java:150)
      3. org.restlet.Filter.handle(Filter.java:195)
      3 frames
    13. com.noelios.restlet
      ApplicationHelper.handle
      1. com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
      2. com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112)
      2 frames
    14. org.restlet
      Application.handle
      1. org.restlet.Application.handle(Application.java:341)
      1 frame
    15. org.restlet.ext
      WadlApplication.handle
      1. org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705)
      1 frame
    16. org.restlet
      Filter.handle
      1. org.restlet.Filter.doHandle(Filter.java:150)
      2. org.restlet.Filter.handle(Filter.java:195)
      3. org.restlet.Router.handle(Router.java:504)
      4. org.restlet.Filter.doHandle(Filter.java:150)
      5. org.restlet.Filter.handle(Filter.java:195)
      6. org.restlet.Router.handle(Router.java:504)
      7. org.restlet.Filter.doHandle(Filter.java:150)
      8. org.restlet.Filter.handle(Filter.java:195)
      8 frames
    17. com.noelios.restlet
      ChainHelper.handle
      1. com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
      1 frame
    18. org.restlet
      Server.handle
      1. org.restlet.Component.handle(Component.java:673)
      2. org.restlet.Server.handle(Server.java:331)
      2 frames
    19. com.noelios.restlet
      ServerServlet.service
      1. com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68)
      2. com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147)
      3. com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881)
      3 frames
    20. JavaServlet
      HttpServlet.service
      1. javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      1 frame
    21. Jetty Server
      ServletHandler$CachedChain.doFilter
      1. org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
      2. org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
      2 frames
    22. Shiro
      OncePerRequestFilter.doFilter
      1. org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
      2. org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
      3. org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
      4. org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81)
      5. org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
      6. org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
      7. org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
      8. org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81)
      9. org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
      10. org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359)
      11. org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275)
      12. org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
      13. org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
      14. org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344)
      15. org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272)
      16. org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81)
      16 frames
    23. Jetty Server
      SelectChannelEndPoint.run
      1. org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
      2. org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
      3. org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      4. org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      5. org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      6. org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
      7. org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      8. org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      9. org.mortbay.jetty.Server.handle(Server.java:326)
      10. org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
      11. org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
      12. org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
      13. org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      14. org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
      15. org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
      15 frames
    24. Jetty Util
      QueuedThreadPool$PoolThread.run
      1. org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
      1 frame